用c++编程时 第一行是一个正整数n(int范围),表示共有n个字符串 怎么写

急~谢描述给定一个字符串,求字符串中恰好出现2次的第一个字符。输入第一行是一个正整数n(int范围),表示共有n个字符串。下面n行,每行是一个字符串,字符串的长度在int... 急~谢
描述给定一个字符串,求字符串中恰好出现2次的第一个字符。输入第一行是一个正整数n(int范围),表示共有n个字符串。
下面n行,每行是一个字符串,字符串的长度在int范围内。字符串由小写字母,大写字母和数字构成,不包含其他字符。
展开
 我来答
物理公司的
推荐于2016-06-27 · TA获得超过5700个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1495万
展开全部
#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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式