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~~
代码如下:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool judge(string a,string b){
sort(a.begin(),a.end());
sort(b.begin(),b.end());
return a==b?true:false;
}
int main(){
string a,b;
vector<string> mpt;
vector<string>::iterator it;
int n,i;
cin>>n>>a;
for(i=;i<n;i++){
cin>>b;
if(judge(a,b)) mpt.push_back(b);
}
sort(mpt.begin(),mpt.end());
for(it=mpt.begin();it!=mpt.end();it++)
cout<<*it<<endl;
cout<<mpt.size()<<endl;
return ;
}