解题思路
题目定义:在给定的单词序列 s1,s2,…,sn 中,一个单词 si 是“可组合的”,当且仅当存在两个下标 j 和 k(j=k),使得 sj+sk=si。等价地,存在一个切分位置 p(1≤p<∣si∣),将 si 分成前缀 x=si[0:p] 和后缀 y=si[p:],且 x 和 y 都曾在列表中出现过;若 x=y,则要求该字符串在列表中至少出现两次(以保证来自不同下标)。
根据这个定义,我们可以对每组测试数据执行如下操作:
- 统计词频
遍历该组所有单词,用哈希表 cnt 记录每个字符串的出现次数。