Time limit(ms): 1000 Memory limit(kb): 65535
Description
输入N和一个要查找的字符串,以下有N个字符串,我们需要找出其中的所有待查找字符串的变位词(例如eat,eta,aet就是变位词)按字典序列输出,并且输出总数目
Input
第一行:N(代表共有N个字符串属于被查找字符串) (N<=50) 第二行:待查找的字符串(不大于10个字符) 以下N行:被查找字符串(不大于10个字符)
Output
按字典序列输出在被查找字符串中待查找字符串的所有变位词 每行输出一个 输出完成后输出总数目
Sample Input
7
asdfg
asdgf
asdfg
dsafg
xcvcv
gfdsa
tyuv
asd
|
Sample Output
asdfg
asdgf
dsafg
gfdsa
4
|
嗯~~没什么好说的水题,运用vector直接水过 ,Orz~~
代码如下:
1 #include <iostream> 2 #include <string> 3 #include <vector> 4 #include <algorithm> 5 using namespace std; 6 bool judge(string a,string b){ 7 sort(a.begin(),a.end()); 8 sort(b.begin(),b.end()); 9 return a==b?true:false; 10 } 11 int main(){ 12 string a,b; 13 vector<string> mpt; 14 vector<string>::iterator it; 15 int n,i; 16 cin>>n>>a; 17 for(i=0;i<n;i++){ 18 cin>>b; 19 if(judge(a,b)) mpt.push_back(b); 20 } 21 sort(mpt.begin(),mpt.end()); 22 for(it=mpt.begin();it!=mpt.end();it++) 23 cout<<*it<<endl; 24 cout<<mpt.size()<<endl; 25 return 0; 26 }