返回列表 发帖
先抛砖 感觉可以少个FOR
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
   for %%j in (%%i) do (
       set str=%%j
       for /l %%a in (0,1,9) do (
       if "!str:~-1!"=="%%a" set _%%a=!_%%a! %%j
)))
for /l %%a in (0,1,9) do if not "!_%%a!"=="" echo;%%a !_%%a!
pauseCOPY

[ 本帖最后由 terse 于 2009-4-13 17:12 编辑 ]
2

评分人数

    • 随风:PB + 5
    • batman: 这题对兄弟来说感觉。。。PB + 10

TOP

原帖由 terse 于 2009-4-13 17:10 发表
先抛砖 感觉可以少个FOR

虽然少个FOR 但CALL的效率不知道怎么样
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
   for %%j in (%%i) do (
       set str=%%j
       call set _!str:~-1!=%%_!str:~-1!%% %%j
))
for /l %%a in (0,1,9) do if not "!_%%a!"=="" echo %%a!_%%a!
pauseCOPY
1

评分人数

TOP

重温一下 前面发过没?前面随风兄提示直接for的  后面冒泡排
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do (
   for %%j in (%%i) do (
       set "str=%%j"
       for %%k in (!str:~-1!) do set/a _%%k+=1&set "_%%k_!_%%k!=%%j"
    )
)
for /l %%a in (0,1,9) do if defined _%%a (
   set /a "c=_%%a-1"
       for /l %%i in (1,1,!c!) do (
           set /a "b=%%i+1"
           for /l %%j in (!b!,1,!_%%a!) do (
           if !_%%a_%%i! gtr !_%%a_%%j! set/a "_%%a_%%j=!_%%a_%%i!,_%%a_%%i=!_%%a_%%j!"
        )
    )
    for /l %%i in (1,1,!_%%a!) do set "var=!var! !_%%a_%%i!"
    echo;%%a!var!&set "var="
)
pauseCOPY

TOP

返回列表