题
习题5-4 复合词(Compound Words,UVa 10391)。完整题目见参考[1]
#include <iostream> #include <cstring> #include <string> #include <set> using namespace std; set<string> dict; int main() { string x; while (cin >> x) dict.insert(x); for (set<string>::iterator it = dict.begin(); it != dict.end(); ++it) { string s = *it; int len = s.length(); for (int i = 1; i != len; ++i) { if (dict.count(s.substr(0, i)) && dict.count(s.substr(i, len - i))) { cout << s << endl; continue; } } } return 0; }