Neil Ding
Neil Ding
非常清楚,再赞一下。所以核心算法就是这一段 ``` java while(trieNode.size() > 1){ Node left = getMin(trieNode); Node right = getMin(trieNode); Node parent = new Node('\0', (left.freq + right.freq), left, right); trieNode.add(parent); } ``` 提取list里最小的两个node,以他们为child组建一个parent node,放回到list里,直到list为空。
@allen6432 二进制那个?没有问题啊,在那个软件里试过了么?
@allen6432 是的,`(0|1)`表示 **一个** “0 or 1”,`(0|1)*` **大于等于零个** “0 or 1”
@allen6432 01111是一个二进制数啊,它不就是只包含0或者1么?
想到一个小题:设计一个正则表达式,判断一个字符串是否满足 - 包含至少一个小写字母 - 包含至少一个大写字母 - 包含至少一个特殊符号 - 包含至少一个数字 - 长度至少6位,最多30位
@xujiahang11 :joy:
``` java static String reverseString(String str) { String ret = ""; int len = str.length(); for (int i = 0; i < len; i++) { ret += str.charAt(len - i...
@dianadujing 你的方法比较好,表面上看起来差不多,但其实效率差好多,测试了一下: ``` java char[] strArray = new char[100000]; for (int i = 0; i < 100000; i++) { strArray[i] = 'a'; } String str = new String(strArray); long startTime...
@yuxiye 恩,是的,不过还是 @dianadujing 的方法快一点点(抱歉开始钻牛角尖),测了一下啊StringBuilder大概8ms的样子。
@hyhuang1218 欢迎加入!