[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 思想之翼 于 2023-4-8 21:34 编辑

回复 6# terse
您好!是的。

递增:A(有重复)  AB(有重复)  ABC(有重复)  ABCD(有重复) ABCDA(有重复)  ABCDAB(无重复)...  找到ABCDA有重复,且最长字符串。

从总字符串的一半(奇数则+1)开始递减,是否更快?
ABCDAB(无重复)   ABCDA(有重复)... 找到ABCDA有重复,且最长字符串。

实际运用中,没有极端情况,比如:AAAAAAAAAAAAAA 或者 ABABABABABABAB 或者 ABCABCABCABC ...

TOP

回复 5# 思想之翼
计算1列2000行 应该不需要22秒  一楼的意思应该是要匹配的字符总是第一位开始 是这样吗

TOP

回复 4# WHY
感谢!有一点疑惑:计算1列2000行的数据,该代码耗时22秒,VBS代码却只耗时0.07125秒,老刘一号不是说:“随便换个编译型语言效率就可以薄纱vbs”吗?

TOP

  1. @if(0)==(0) echo off
  2. type a.txt | cscript //nologo //e:jscript "%~f0" > b.txt
  3. pause & exit
  4. @end
  5. var str = WSH.StdIn.ReadAll().replace(/\s/g, '');
  6. var Len = str.length;
  7. var flag = false;
  8. for (var i = Len-1; i > 0; i--) {
  9.     var key = str.substr(Len-i);
  10.     for (var j = 0; j < Len-i; j++) {
  11.         if (str.substr(j, i) === key) {
  12.             flag = true;
  13.             WSH.Echo(str.substr(i+j, 1));
  14.         }
  15.     }
  16.     if (flag) break;
  17. }
复制代码
1

评分人数

TOP

是不是介样子呢?
  1. $t='WADCBADCBAFEGFLIFABCDEFABCDEFALI';
  2. $f=$t.ToCharArray();
  3. [array]::Reverse($f);
  4. $e=-join($f);
  5. $d=[regex]::Matches($e, "(?s)(.)((?:(?!\1).)+)\1(?=\2\1){1,}").value;
  6. # 这是获取最长一个为 :输出B
  7. if($null -ne $d -and $d.Length -gt 0){
  8. $s=[Linq.Enumerable]::Max($d, [func[object,int]]{param($i); $i.Length;});
  9. $d.Where{$_.Length -eq $s}.Foreach{$_.SubString($_.Length-2,1)}
  10. }
  11. # 这是获取每一个为 ;输出 B;D
  12. if($null -ne $d -and $d.Length -gt 0){
  13. $d.ForEach{$_.SubString($_.Length-2,1)}
  14. }
复制代码
1

评分人数

QQ: 己阵亡
脚本优先 [PowerShell win10]

TOP

http://www.bathome.net/thread-65332-1-1.html

感觉和这个有点相似?
1

评分人数


QQ 20147578

TOP

返回列表