level 10
如果是一样的字符,val得到的值肯定是一样的,如果在循环中出现过一样的字符,那么char_set[val]的值就是true,会返回false.如果循环中把有得到的val都不一样,那么就会返回true
2013年01月08日 01点01分
4
level 11
这段东西很错, 建议别学.
他做的东西就是开 256 个 boolean, 逐个字找, 找到了就将字转成数字去设定 true, 那样下次就知道这字出现过了.
不过首先 Java 的 char 是双字节的, 0-65535. 其次是 Java 已经由 UCS2 升级到 UTF-16, 一个字 codePoint 可能占多个 char, 即使只考虑双 char 也要 4G 的矩阵, 早就爆了.
稳妥的做法始终都是逐个字点往下搜. 效能上等真的慢了再优化不晚.
2013年01月08日 01点01分
5