javascript - js,如何找到文本中各行相同的数据
ringa_lee
ringa_lee 2017-04-10 15:38:28
[JavaScript讨论组]

一个文本里有N条数据(一行一条),把各行字符相同(长度相同,顺序可以不同)的全部找出,比如def123,123def,d123fe.

另外:能用几种方法判断出两个字符是相同的(比如排序)

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
大家讲道理

应该可以不用排序,用空间换时间,减小时间复杂度。
我的想法是:
1. 用一个数组charCount统计每行中每个字符的次数,charCount中的每个元素也是一个数组,共有1 + 10 + 26 + 26个元素,第一个元素为行号,后面的其他元素分别对应0-9,a-z,A-Z中每个字符出现的次数(注意这里顺序很重要)
2. 一行一行的读取文本,记录每行中每个字符出现的次数,填充charCount
3. 遍历charCount, 从每个元素的第二项开始比较,相同的元素归为一类,不相同的元素归为一类,
4. 从3中相同的元素集合中,重复3的步骤,并且比较下一个字符,依次类推,可以确定文本中所有字符相同的行和不同的行。
这样做比利用排序快得多。
(简单的排序方法是,对每一行排序,然后对整个文本按每一行排序,然后再遍历一次,即可找到所有相同的字符串和不同的字符串)

阿神

function stringSort(str){
return str.split("").sort().join("");
}

var a = "sdf123";
var b = "123fds";

assertEqual(stringSort(a), stringSort(b));

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号