第一题
描述:输出首次出现3次的字母代表的数字a-1,b-2.....,字母大小写不分,如果所有的字母都没有3个及以上,输出0;
测试用例:
aabbcbweghkjge 2
AAba 1
ZZz 26
abcdbAMKL 0
空 0
特殊字符
123455aabba 空还是1呢?
//第一题首次出现三次字母对应的数字
int hash[26];
for(int i=0;i<26;i++)
{
hash[i]=0;
}
string s;
getline(cin, s);
int len=s.size();
int res1=0;
for(int i=0;i<len;i++)
{
if(s[i]>'z'||s[i]<'A')continue;
char pos=s[i];
if(s[i]<='Z')
pos=pos-'A';
else
pos=pos-'a';
if(hash[pos]>=2)
{
res1=pos+1;
cout<<res1;
return 0;
}
else
{
hash[pos]++;
}
}
cout<<res1;
//第一题首次出现三次字母对应的数字
找到了错误原因 ASCII码中a-z 与A-Z 并不连续!!!!!
int hash[26];
for(int i=0;i<26;i++)
{
hash[i]=0;
}
string s;
getline(cin, s);
int len=s.size();
int res1=0;
for(int i=0;i<len;i++)
{
if(!(s[i]>='A'&&s[i]<='Z')&&!(s[i]>='a'&&s[i]<='z'))continue;
char pos=s[i];
if(s[i]<='Z')
pos=pos-'A';
else
pos=pos-'a';
if(hash[pos]>=2)
{
res1=pos+1;
cout<<res1;
return 0;
}
else
{
hash[pos]++;
}
}
cout<<res1;