[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
老师上课教了用二分法查找信息,如果我把它用来计算字符串长度,会不会效率更高呢?
经测试,在最坏情况下,也仅需循环十几次就可以得到结果
代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p str=input string:
  4. call :len ^!str!
  5. pause>nul
  6. exit
  7. :len
  8. set "t=%1"
  9. set long=0 & set longb=8192
  10. for %%a in (8192 4096 2048 1024 512 256 128 64 32 16 8 4 2) do (
  11. set /a zz=long+longb
  12. set /a "zz=zz/2"
  13. set /a zzs=zz+1
  14. set flag=false
  15. for %%b in (!zz!) do (if "!t:~%%b,1!" neq "" set flag=true)
  16. for %%b in (!zzs!) do (if !flag!==true if "!t:~%%b,1!"=="" echo !zzs! & goto:eof)
  17. if !flag!==false (set longb=!zz!) else (set long=!zz!)
  18. )
  19. if "!t!" neq "" (echo !zz!) else (echo 0)
  20. goto:eof
复制代码

TOP

返回列表