[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
这题的难度好像不在于相同的字符,对我来说,如何排列才是最难的。头疼,排列组合。。。
心绪平和,眼藏静谧。

TOP

有重复字符很简单啊。
  1. set var=a b c a b
  2. for %%a in (%var%) do set/a nn+=1&set .!nn!=%%a
  3. for /l %%a in (1 1 %nn%) do set "str=!str!%%a "
  4. for %%i in (!str!) do (
  5. ....
  6. ....
  7. echo !.%%i! !.%%j! !.%%k! !.%%l! !.%%m!
复制代码
心绪平和,眼藏静谧。

TOP

回复 8楼 的帖子

  1. @echo off&setlocal enabledelayedexpansion
  2. set str=a b a
  3. for %%a in (%str%) do set /a n+=1& set .!n!=%%a&set "var=!var!!n! "
  4. for %%i in (!var!) do (
  5.     set var1=!var:%%i=!
  6.     for %%j in (!var1!) do (
  7.     set var2=!var1:%%j=!
  8.     for %%k in (!var2!) do (
  9.     set/a flag+=1
  10.     echo !.%%i! !.%%j! !.%%k!
  11.     )))
  12.     echo 共有%flag%个组合
  13. pause
复制代码
1

评分人数

    • terse: 加分在那里PB + 5
心绪平和,眼藏静谧。

TOP

这样的题用递归来做比较好些,否则用我这样的方法,还是一样只是穷举,而且不通用,太臃肿,4个字符只能再加一个for,若有5个字符就得用5个for。
完全是不通用的。
心绪平和,眼藏静谧。

TOP

回复 17楼 的帖子

terse前辈是不是输入空格了 abad 要这样的。
心绪平和,眼藏静谧。

TOP

返回列表