
用c++编程时 第一行是一个正整数n(int范围),表示共有n个字符串 怎么写
急~谢描述给定一个字符串,求字符串中恰好出现2次的第一个字符。输入第一行是一个正整数n(int范围),表示共有n个字符串。下面n行,每行是一个字符串,字符串的长度在int...
急~谢
描述给定一个字符串,求字符串中恰好出现2次的第一个字符。输入第一行是一个正整数n(int范围),表示共有n个字符串。
下面n行,每行是一个字符串,字符串的长度在int范围内。字符串由小写字母,大写字母和数字构成,不包含其他字符。 展开
描述给定一个字符串,求字符串中恰好出现2次的第一个字符。输入第一行是一个正整数n(int范围),表示共有n个字符串。
下面n行,每行是一个字符串,字符串的长度在int范围内。字符串由小写字母,大写字母和数字构成,不包含其他字符。 展开
展开全部
#include <iostream>
#include <string>
#include <map>
#include <vector>
using namespace std;
int main(){
int n=0;//n个字符窜
cin>>n;
vector<string> r; //保存n个字符窜
string s;//保存单个字符窜
for(int c=0;c<n;c++){
cin>>s;//输入单个字符窜
r.push_back(s);//保存n个
}
for(int k=0;k<n;k++){
s =r[k];//提取字符窜
map<char,int> abc;
for(int i=0;i<s.length();i++){
if(abc.count(s[i])==1){//如果找到了说明是第二次找到,直接输出退出循环
cout<<s[i]<<endl;
break;
} //假设字符窜为abcc 找a,不在,key为(a),找b,不在key为(a,b),找c,不在,key为(a,b,c),找a,存在执行上面的if
if(abc.count(s[i])==0){//map是由key,value组成。本来为空,查找是否有key为第一个字符的,没有加入
abc.insert(make_pair(s[i],1));
}
}
}
system("pause");
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询