原题链接:找第一个只出现一次的字符
解题思路:用一个数组标记字母出现的先后,然后以先后顺序判断该字母是否符合条件输出就好了
注意事项: 我看到有些题解的第一个且只出现一次的字母的这个“第一个”是根据字母表的顺序输出的并不是根据输入的数据的顺序;
例: 输入: aadcbb
输出: c
这样居然也给判是对的,不知道是不是我对题目的理解错了,不过我这段代码也没判错。
参考代码:
#include<iostream> using namespace std; int main() { int a[130]={0};//定义大一点方便理解 int flag[30]={0},t=0;//用来记录字母出现的先后 string s1; cin>>s1; for(int i=0;i<s1.size();i++) //遍历字符串每个字母 { if(a[s1[i]]==0) {flag[t]=s1[i];t++;a[s1[i]]++;} //判断该字母是否第一次出现并记录 else a[s1[i]]++; } for(int i=0;i<t;i++) //从第一个出现的字母开始遍历 { if(a[flag[i]]==1){cout<<char(flag[i]); return 0;} //有符合条件的字母就输出并退出程序 } cout<<"no"; //如果没有出现过就输出no return 0; }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复