这个题目的难点在于剔除含有相同数字和个数的字符,本蒟蒻第一时间想到的是将每个数字改成字符串然后将每个字符串都排序一遍,这样就变成了相同的数。
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 人评分
【求[X,Y]内被除3余1并且被除5余3的整数的和】 (C语言代码)浏览:674 |
printf基础练习2 (C语言代码)浏览:746 |
简单的a+b (C语言代码)浏览:544 |
DNA (C语言代码)浏览:391 |
C二级辅导-等差数列 (C语言代码)浏览:695 |
蛇行矩阵 (C语言代码)浏览:502 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:502 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:483 |
C二级辅导-公约公倍 (C语言代码)浏览:662 |
C语言程序设计教程(第三版)课后习题7.4 (C++代码)浏览:553 |