题目描述
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出 no
。
输入格式
一个字符串,长度小于 1100。
输出格式
输出第一个仅出现一次的字符,若没有则输出 no
。
输入输出样例
输入 #1
abcabd
输出 #1
c
输入 #2
aabbcc
输出 #2
no
第一种方法
#include <bits/stdc++.h>
using namespace std;
bool visit[30];
bool flag[30];
int main(){
string str;
cin>>str;
for(int i=0;i<str.size();i++){
if(visit[str[i]-'a']){
flag[str[i]-'a']=true;
}
visit[str[i]-'a']=true;
}
for(int i=0;i<str.size();i++){
if(!flag[str[i]-'a']){
cout<<str[i];
return 0;
}
}
cout << "no";
return 0;
}
第二种方法
#include <bits/stdc++.h>
using namespace std;
int main(){
int t[30];
string s;
cin>>s;
for(int i=0;i<s.size();i++){
t[s[i]-'a'+1]++;
}
for(int i=0;i<s.size();i++){
if(t[s[i]-'a'+1]==1){
cout<<s[i];
return 0;
}
}
cout<<"no";
return 0;
}