Codeforces Round #170 (Div. 2) problem B

http://codeforces.com/contest/278/problem/B


/*
 *题目:字符串数目n 1≤n≤30,每个字符串的长度不超过20 
 *含有两个字符的字符串有676种,大于600,
 *所以不是它的子串的字符串在两位中就产生了 
 *多谢大牛指点。。。
 */

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;

char str[22];
bool s[26],ss[26][26];   //存放结果为一个字母、两个字母的情况 

int main()
{
	int n;
	cin>>n;
	while(n--)
	{
		cin>>str;
		for(int i = 0; i < strlen(str)-1; i++)
		{
			s[str[i]-'a'] = true;
			ss[str[i]-'a'][str[i+1]-'a'] = true;
		}
		s[str[strlen(str)-1]-'a'] = true;
	}
	for(int i = 0; i < 26; i++)  //一个字母的情况 
	{
		if(!s[i])
		{
			printf("%c\n",i+'a');
			return 0;
		}
	}
	for(int i = 0; i < 26; i++)  //两个字母的情况 
	{
		for(int j = 0; j < 26; j++)
		{
			if(!ss[i][j])
			{
				printf("%c%c\n",i+'a',j+'a');
				return 0;
			}
		}
	}
}


你可能感兴趣的:(Codeforces Round #170 (Div. 2) problem B)