題目:已知一些字符串,輸出字母組成相同的串組,用等號連接。
分析:字符串。每個對應的字符串求出對應的字母的有續串,然後判斷有序串即可。
說明:╮(╯▽╰)╭。
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <string>
#include <map>
using namespace std;
string input[101];
bool cmp(string a, string b)
{
for (int i = 0; b[i]; ++ i) {
if (a[i] != b[i]) {
return a[i] < b[i];
}
}
return false;
}
int main()
{
int t;
char buf[101];
while (~scanf("%d\n\n",&t)) {
while (t --) {
map <string, string> Phrase;
int count = 0;
while (gets(buf)) {
if (strcmp(buf, "")) {
input[count] = string(buf);
string alpha = "";
for (int j = 0; input[count][j]; ++ j) {
if (input[count][j] != ' ') {
alpha += input[count][j];
}
}
sort(alpha.begin(), alpha.end());
Phrase[input[count]] = alpha;
count ++;
}else {
break;
}
}
sort(input, input+count, cmp);
for (int i = 0; i < count; ++ i) {
for (int j = i+1; j < count; ++ j) {
string output1 = Phrase[input[i]];
string output2 = Phrase[input[j]];
if (output1 == output2) {
cout << input[i] << " = " << input[j] << endl;
}
}
}
if (t) {
puts("");
}
}
}
return 0;
}