【发布时间】:2012-03-03 20:07:48
【问题描述】:
string = "aabbccaaabbcbbdbabdaaa";
如何以有效的方式检查该字符串以查找内部字符串重复项:
我的意思是:
-
在
string中寻找2个字母的字符串:aa = " aa bbcc aa abbcbbdbabd aa a";
//这里没有空格或string中的其他地方。只是添加它们以强调“aa”。
aa = "aa bbcca aa bbcbbdbabda aa ";
总 aa = 5;
aa 之间的距离 = 4,5,11,12;
bb = "aa bb ccaaa bb c bb dbabdaaa";
总计 bb = 3;
bb 之间的距离 = 5,1
... -
在
string中寻找 3 个字母的字符串:aaa = " aaa bbcc aaa bbcbbdbabd aaa ";
总 aaa = 3;
aaa 之间的距离 = 4,10;
...
我的尝试是以 4 个周期的方式进行的,而且非常慢。
附言
任何帮助表示赞赏。对不起我的英语不好。
编辑:
抱歉问了不好的问题。我忘了说 string 还应该检查 4 个字符重复和其他字符重复:
aabb = " aabb cca aabb cbbdbabdaaa";
总计 aabb = 2;
aabb 之间的距离 = 3;
编辑 2:
我们正在寻找的重复项不应手动输入。假设string 是 20k 个符号,您正在搜索 ANY 重复项(没有空格)以及这些重复项之间的距离。
再次感谢并为不正确的问题再次道歉。
【问题讨论】:
-
哪种语言?您已标记为c#、php、javascript……
-
如果是php你可以结帐substr_count
-
该列表中的任何一个。我更喜欢javascript,但这并不重要。
-
@Josh,我知道那段代码的样子。只为回答你的问题(抱歉,没看链接,要多文字)pastebin.com/QpkUEm2q
标签: c# php javascript regex