一、題目
輸入一系列由小寫字母組成的單詞。輸入已按照字典序排序(這句話就是個陷阱),且不超過120000個。找出所有的複合詞,即恰好由兩個單詞連線而成的單詞。
二、解題思路
要麼列舉兩兩拼接的情況,o(n^2),n這麼大肯定會超時。要麼列舉每個單詞的拆分情況,當單詞比較短時,o(n*m),可能可行。
我們用string型別的陣列儲存這些單詞,map記錄單詞的是否出現,set自動排序並去重。
三、**
1 #include2 #include3 #include4 #include5 #include
6 #include7 #include8
using
namespace
std;910
const
int maxn = 120000 + 10;11
string
words[maxn];
12 mapmyhash;
13set
ans;
1415
intmain()
1622
for (int i = 0; i < cnt; i++)
2332}33
}34for (set
::iterator it = ans.begin(); it != ans.end(); it++)
35 cout << *it;
36return0;
37 }
《語法》 07 複合詞,接尾詞
上 動詞去 上 1.表示動作,移動等向上。起來 向上 2.表示動作的完成。完成了 好了 動詞去 1.表示把某動作做完 完 2.表示把某種狀態達到極限 非常 十分 動詞去 1.表示 能夠完成 是 的可能形式 動詞去 1.表示 不能 完 不能完全 是 的可能形式的否定方式 直 動詞去 1.重新 表示對前...