题目描述
给你一个只包含小写字母的字符串。请你判断是否存在只在字符串中出现过一次的字符。
如果存在,则输出满足条件的字符中位置最靠前的那个。如果没有,输出 no。
输入格式
共一行,包含一个由小写字母构成的字符串。数据保证字符串的长度不超过 100000。
输出格式
输出满足条件的第一个字符.如果没有,则输出 no。
解题思路
首先定义输入的字符串str1,同时输入str1,for循环遍历字符串里面所有字母
使用string库里面的find函数和rfind函数从头到尾查找只出现一次的字母
如果找到了就输出,但是这个时候如果不存在我们不知道怎么处理,所以引入flag标记
当输出单个出现的字母的时候刷新flag的值为1,最后一个if表达式输出没有的情况即可
C++ 代码
#include<iostream>
#include<string>
using namespace std;
int main(){
int flag=0;
string str1;
getline(cin,str1);
int a=str1.size();
for(int i=0;i<a;i++){
if(str1.find(str1[i])==str1.rfind(str1[i])){
cout<<str1[i]<<endl;
flag=1;
break;
}
}
if(flag==0){
cout<<"no"<<endl;
}
}
篇章
上一篇:AcWing 773. 字符串插入
https://www.acwing.com/solution/content/209320/
下一篇:AcWing 762. 字符串匹配
https://www.acwing.com/solution/content/210047/