描述
找出字符串中第一个只出现一次的字符
数据范围:输入的字符串长度满足 1≤n≤1000 1≤n≤1000
输入描述:
输入一个非空字符串
输出描述:
输出第一个只出现一次的字符,如果不存在输出-1
示例1
输入:
asdfasdfo
复制输出:
o
复制
#include <iostream>
#include<map>
using namespace std;
int main() {
string s;
while(cin>>s){
map<char,int> mp;
for(int i=0;i<s.size();i++){
mp[s[i]]=0;
}
if(s.size()>=1&&s.size()<=1000){
for(int i=0;i<s.size();i++){
for(int j=0;j<s.size();j++){
if(s[i]==s[j])mp[s[i]]++;
}
}
for(int k=0;k<s.size();k++){
if(mp[s[k]]==1){
cout<<s[k]<<endl;
break;
}
else if(k==s.size()-1 && mp[s[k]]!=1){
cout<<"-1"<<endl;
}
}
//cout<<"-1"<<endl;
}
}
}
// 64 位输出请用 printf("%lld")
该程序用于找出输入字符串中第一个只出现一次的字符。它使用哈希映射来统计每个字符的出现次数,遍历两次字符串,第一次初始化计数,第二次找出第一个计数为1的字符并输出。若所有字符均重复或未找到单次出现的字符,则输出-1。
418

被折叠的 条评论
为什么被折叠?



