Problem 1003 用字典为什么会一直wrong

liangjidong1 | 2016-05-14 20:14:08Author
如题
laphets | 2016-05-14 20:27:52# 1
Trie同跪...
zjut201426811519 | 2016-05-14 20:29:47# 2
这个我觉得是hehe这种情况
当你删了he时,hehe变成了he,这时候的he还要再删一遍吧
201424133156 | 2016-05-14 20:46:28# 3
同跪
liangjidong1 | 2016-05-14 20:51:04# 4
<pre> public static void delete(Tree root, String s) { Tree p = root; Tree q; Tree r = root; char c, temp; if (s.length() == 0) return; temp = s.charAt(0); for (int i = 0; i < s.length(); i++) { c = s.charAt(i); int j = c - 'a'; q = p.nodes[j]; if (q == null) return; if (i < s.length() - 1) { for (int k = 0; k < 26; k++) { if (p.nodes[k] != q && p.nodes[k] != null) { r = p; temp = c; break; } } } if (i == s.length() - 1) { r.nodes[temp - 'a'] = null; } p = q; } } </pre>
laphets | 2016-05-14 20:53:36# 5
应该是删除的问题
删除当前节点的时候 要把它的子树的字符串的个数也给减掉
ysd911119 | 2016-05-14 20:57:09# 6
我用的map存单词,前缀用lower_bound查找,删除反复查找前缀并删除,一直wa,求救
ysd911119 | 2016-05-14 20:57:48# 7
求测试数据
saucyJacky | 2016-05-14 21:05:32# 8
删除的时候不是不是把所有子树都删除?不需要记录字符的个数把
coderYG | 2016-05-14 21:44:00# 9
我用Tri过了
coderYG | 2016-05-14 21:47:11# 10
记录字符个数,删除时把前缀中每一个字符的个数都减去前缀字符串中最后一个字符保存的个数,并把最后一个字符后面的子树都清掉(指针置空,这样就不用删除子树字符的个数,要不搜索子树会超时啊,不过这样有内存泄漏哎~)