为了账号安全,请及时绑定邮箱和手机立即绑定

js,如何找到文本中各行相同的数据

js,如何找到文本中各行相同的数据

PIPIONE 2019-04-13 08:36:52
一个文本里有N条数据(一行一条),把各行字符相同(长度相同,顺序可以不同)的全部找出,比如def123,123def,d123fe.另外:能用几种方法判断出两个字符是相同的(比如排序)
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

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

TA贡献1847条经验 获得超11个赞

functionstringSort(str){
returnstr.split("").sort().join("");
}
vara="sdf123";
varb="123fds";
assertEqual(stringSort(a),stringSort(b));
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 468 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信