痛苦死了,调了N长时间,中间两次想法错了^$%$^#%#
题意 :
手机T9输入法的程序,用trie树。
分析 :
1. 建立trie树,每层的每个节点表示一个按键,每层2-9个结点,根据输入,只建立有用的结点。
2. 对于数字只要沿着路找下去就可以了
3. haveword来判断该结点是否已经生成完毕。prob 里存两个,一个是目前频最高的,另一个是当前正跑的单词的词频。letter是目前频最高的,pletter是正在跑的单词。
4. 如果一个结点已经不存在单词了,那么后面的都不存在了,所以将指针弄空就可以,这里WA一次,
5. 一个结点如果已经生成过,直接用就行,再生成把原来的覆盖了,这里WA一次。
6. 备用的词的词频不断处理,处理完按频率与目前最高的比较,相同时按字典序优先。
代码 :