题目:一个文件,内含一千万行字符串,每个字符串在1K以内,
要求找出所有相反的串对,如abc和cba。
解题思路: O(n)
用trie-tree实现
1.节点结构
typedef struct TreeNode {
int number_; //原字符串对应的行号
}Node;
2.遍历文件,对每一行字符串反序插入到tree中,最后一个Node存储该字符串对应的行号
3.再遍历文件,正序查找,如果完全匹配上,且number不等,则是相反的串对,满足条件,输出两个行号即可
注:如果需要输出字符串,在这Node节点中存入string。或者为了省空间,再单独建立一个map<number, string>也成