Trie add 的递归写法

Trie add 的递归写法

public void addR(String word){
addR(root, 0,word);
}

private void addR(Node cur, int index, String word){
if(index == word.length()){
if(!cur.isWord){
cur.isWord = true;
           size++;
       }
return;
   }
char c = word.charAt(index);
   if(cur.next.get(c) == null)
cur.next.put(c, new Node());
   addR(cur.next.get(c), index + 1, word);
}

​麻烦老师看下有没有问题

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2021-01-30 15:50:20

目测没有问题,你可以使用 Leetcode 上 Trie 的问题,实际测试一下,看看这样写能不能通过。如果能通过,基本上就肯定没问题了。


继续加油!:)

  • 很抱歉老师,服务时间到期了,只能暂时在这里问一个和本节相关的问题了。


    关于Trie要设计成泛型类。老师,您说:”一个汉语字符并不是Character类的对象,要表示汉语,日语 ,韩语还要专门设计字符类“,这句话如何理解呢?因为我觉得Character ch = '汉',Character类的对象是可以表示汉语,日语,韩语的,Java的Character采用了Unicode字符集,应该是可以表示这些常见字符的。

    2022-01-09 16:49:58
  • Java 的 Character 类表示 UTF-16 字符集没有问题。我说的这句话一方面是针对 8bit 的 unsigned char 类型(即 ASCII 的范围的字符)。并不是所有的语言都有对 unicode 的原生支持的,比如 C 语言。如果在 C 中使用其他第三方库,那么其实就是我说的“设计的专门的字符集”。另一方面,Java 的 Character 类不能原生支持比如 UTF-32 的字符集,那么如果你要表达的字符是 UTF-32,就需要在封装一层“可以用于表示 UTF-32 的 Character”。anyway,我相信你理解我说这句话的意思。


    是说服务期到期了以后,可以评论吗?如果是的话,以后有其他问题,找一个自己之前的问题评论提问即可。也可以在我的任何实战课程下(如果有过购买的话)提问,实战课程没有服务期的概念。我出这个体系课程的时候并不知道慕课网的体系课程有一个奇怪的服务期的限制。我和慕课网交涉过很多次,他们也不能单独为我的这门课程取消服务期 🤷‍♂️


    继续加油!:)

    2022-01-09 17:48:15
  • 感谢老师回复,我理解了。另外,服务期到期是可以评论的,但是不同发起新的问题。


    问题2:老师,你好。在设计Trie类基础代码时时,为什么没有添加isEmpty方法接口呢?像这种容器类一般都会添加吧。

    文件位置:【https://git.imooc.com/class-105/Play-Algorithms-and-Data-Structures/src/master/23-Trie/02-Trie-Basics/src/Trie.java

    2022-01-12 09:50:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师