p1318.cpp
来自「大概POJ上50道比较难的题的代码」· C++ 代码 · 共 44 行
CPP
44 行
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector < string > S;
vector < string > ans;
int main(){
string s;
int v[110][26];
int t[26];
int n(0);
memset(v,0,sizeof(v));
cin >> s;
while(s != "XXXXXX"){
S.push_back(s);
for(int i = 0;i < s.size();++i) ++v[n][s[i]-'a'];
++n;
cin >> s;
}
cin >> s;
while(s != "XXXXXX"){
ans.clear();
memset(t,0,sizeof(t));
bool ok(0);
for(int i = 0;i < s.size();++i) ++t[s[i]-'a'];
for(int i = 0;i < n;++i){
int j;
for(j = 0;j < 26;++j)
if(t[j] != v[i][j]) break;
if(j == 26){
ok = 1;
ans.push_back(S[i]);
}
}
if(!ok) puts("NOT A VALID WORD");
else{
sort(ans.begin(),ans.end());
for(int i = 0;i < ans.size();++i) cout << ans[i] << endl;
}
puts("******");
cin >> s;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?