A19852. 好串
填空题
容易
知识点
题目描述
好串
题目描述
小明认为,如果一个字符串只包含小写英文字母,并且每个英文字母只出现一次,同时这些字母在字母表中还是连续的,那么这个字符串就是一个“好串”。
例如,以下字符串是好串:“fced”、“xyz”、“r”和“dabcef”。这些字符串每个字母只出现一次,而且在字母表中连续,没有任何间隙。以下字符串不是好串:“az",字母a和z并不相邻;“aa”,a出现了2次;“bad",abd中间缺少c;“babc",b出现了2次。
输入一个字符串,判断它是不是好串,是的话输出Yes。否则,输出No。
输入格式
第一行一个正整数n,表示字符串的长度。(1<=n<=26)。
第二行一个字符串,题目确保字符串仅包含小写英文字母。
输出格式
Yes或No。
输入样例1
5
bfced输出样例1
Yes输入样例2
3
abf输出样例2
No说明
样例1说明:每个字母只出现一次,而且bcdef是连续的;
样例2说明:abf 在字母表中不连续,中间缺少cde。
参考答案
#include <stdio.h>
#include <iostream>
using namespace std;
int s[26]={0};
int main(int argc, char *argv[])
{
int n,i;
char c[30];
cin>>n>>c;
for(i=0;i<n;i++)
s[c[i]-'a']++;
int sun=0;
i=0;
while(s[i]==0)i++;
n+=i;
for(i;i<n;i++){
if(s[i]!=1){
printf("No\n");
return 0;
}
}
printf("Yes\n");
return 0;
}
上一题
下一题