- 注册时间
- 2011-3-21
- 最后登录
- 2022-3-22
- 在线时间
- 1191 小时
- 阅读权限
- 200
- 积分
- 9457
- 帖子
- 1256
- 精华
- 0
- UID
- 1
|
例解- var strA = ..., strB = ....; // strA, strB 均为超长字符串 (十万数量级),包含小写字母
-
- // 求出所有在 strA 中出现,而 strB 中没有出现的字符, 不重复输出!
- var ary = [], result = [];
- var a = 'a'.charCodeAt(0);
- for (var i=0, l=strB.length; i<l; i++) {
- var c = strB.charCodeAt(i) - a;
- ary[c] = true;
- }
- // 实际中,如果字符出现概率分布均匀,可在这里先扫描一下 ary ,如果 全为 true, 可以提前结束
- for (var i=0, l=strA.length; i<l; i++) {
- var c = strA.charCodeAt(i) - a;
- if (!ary[c]) { // 如果不为 true, 则该字符在 B 中没有出现
- result.push(strA.charAt(i));
- ary[c] = true; // 不重复输出
- }
- }
- alert(result.join(''));
复制代码 |
|