[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
折半法 可处理每行最多 8189 个字符,效率不错。
  1. @echo off&setlocal enabledelayedexpansion
  2. ::@随风 @bbs.bathome.net @2009-04-18
  3. for /f "delims=" %%a in (a.txt) do (
  4.    set /a sun+=1,n=8189*2,max=1
  5.    set s=%%a&set s=!s: =!&set "var="
  6.    for /l %%a in (1 1 14) do (
  7.       if defined var set /a n=var
  8.       set /a n/=2
  9.       for %%i in (!n!) do (
  10.          if "!s:~%%i,1!"=="" (set /a var=n) else (
  11.             set s=!s:~%%i!&set /a max+=%%i,var-=%%i
  12.    )))  
  13.    if !h! lss !max! set /a num=sun,h=max
  14. )
  15. echo 字符数最多的行为:!num!
  16. echo 字符数为:!h!
  17. pause
复制代码

[ 本帖最后由 随风 于 2009-4-18 17:01 编辑 ]
技术问题请到论坛发帖求助!

TOP

19楼思路非常巧妙,从少到多,只判断字符数多的行,不判断少的行。省略了很多无用的判断。
技术问题请到论坛发帖求助!

TOP

返回列表