这个题目的难点在于剔除含有相同数字和个数的字符,本蒟蒻第一时间想到的是将每个数字改成字符串然后将每个字符串都排序一遍,这样就变成了相同的数。
ac代码:
#include<bits/stdc++.h> using namespace std; map<string,int>ma; set<string>se; struct str//保存当前字符串和该字符串排序后的字符串 { string s; string ss; }str[10005]; bool cmp(char a,char b) { return a<b; } int main() { int n; while((scanf("%d",&n))&&n!=0) { for(int i=0;i<n;i++) { string s; cin>>s; str[i].s=s; int l=s.length(); sort(s.begin(),s.end(),cmp);//从小到大排序 str[i].ss=s; ma[s]++;//对每个排序后的字符串数量保存下来 } for(int i=0;i<n;i++) { if(ma[str[i].ss]==1)//如果该字符串只出现一次,就装如set { se.insert(str[i].s); } } if(se.empty())//如果set为空就输出None { printf("None\n"); continue; } set<string>::iterator it; for(it=se.begin();it!=se.end();it++)//输出 { cout<<*it<<' '; } cout<<endl; ma.clear();//清空map se.clear();//清空set } return 0; }
0.0分
3 人评分
简单的a+b (C语言代码)浏览:573 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:481 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:632 |
1124题解浏览:591 |
1126题解浏览:578 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:713 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:681 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:417 |
这是我的第一篇文章浏览:256 |