Answer to Question #53779 in C for vidhya

Question #53779
In the Byteland country a string "S" is said to super ascii string if and only if count of each

character in the string is equal to its ascii value.

In the Byteland country ascii code of 'a' is 1, 'b' is 2 ...'z' is 26.

Your task is to find out whether the given string is a super ascii string or not.

Input Format:

First line contains number of test cases T, followed by T lines, each containing a string "S".

Output Format:

For each test case print "Yes" if the String "S" is super ascii, else print "No"

Constraints:

1<=T<=100

1<=|S|<=400, S will contains only lower case alphabets ('a'-'z').

Sample Input and Output

SNo. Input Output

2

1

bba

scca

Explanation:

In case 1, viz. String "bba" -

The count of character 'b' is 2. Ascii value of 'b' is also 2.

The count of character 'a' is 1. Ascii value of 'a' is also 1.

Hence string "bba" is super ascii.
1
Expert's answer
2015-08-04T02:18:48-0400
In the Byteland country a string "S" is said to super ascii string if and only if count of each character in the string is equal to its ascii value.
In the Byteland country ascii code of 'a' is 1, 'b' is 2 ...'z' is 26.
Your task is to find out whether the given string is a super ascii string or not.
Input Format:
First line contains number of test cases T, followed by T lines, each containing a string "S".
Output Format:
For each test case print "Yes" if the String "S" is super ascii, else print "No"
Constraints:
1<=T<=100
1<=|S|<=400, S will contains only lower case alphabets ('a'-'z').
Sample Input and Output
SNo. Input Output
2
1
bba
scca
Explanation:
In case 1, viz. String "bba" -
The count of character 'b' is 2. Ascii value of 'b' is also 2.
The count of character 'a' is 1. Ascii value of 'a' is also 1.
Hence string "bba" is super ascii.

Solve
#include <stdio.h>

int main()
{
char str[400]; //for input line
int res[100]={0}; //result of check
int T;
printf("Input number of string: ");
scanf("%d",&T);
int j;
for(j=0;j<T;j++)
{
printf("Input string # %d: ",j+1);
scanf("%s",str);


int i=0;
//calculate number of symbols:
int numbers[26]={0};
while(str[i]!='\0')
{
if((str[i]>='a')&&(str[i]<='z'))
numbers[str[i]-'a']++;
i++;
}
//check numbers and number in super ascii:
int isAscii=1;
for(i=0;i<26;i++)
if((numbers[i]>0)&&
(numbers[i]!=(i+1)))
{
isAscii=0;
break;
}
if(isAscii==1)
res[j]=1;
}

for(j=0;j<T;j++)
if(res[j]==0)
printf("No\n");
else
printf("Yes\n");
return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
APPROVED BY CLIENTS