测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题