找回密码
 加入
搜索
查看: 3633|回复: 3

[效率算法] 【已解决】枚举字符串中所有字符的组合(论坛有类似的,但是不是我想要的)

[复制链接]
发表于 2015-7-8 19:23:12 | 显示全部楼层 |阅读模式
本帖最后由 黑色袜子 于 2015-7-9 12:50 编辑

论坛P大有一个贴子也是这样的。但是他的是这样的
1
2
3
1 2
2 3 
1 3
1 2 3
而我要的是这样的
1
2
3
11
12
13
21
22
23
31
32
33
111
112
113
121
122
123
。。。。
P大的贴子http://www.autoitx.com/forum.php ... B6%BE%D9&page=1
发表于 2015-7-8 22:24:02 | 显示全部楼层
这个要靠递归来实现啦


#include <Array.au3>

Local $myArray[5] = [1, 2, 3, 4, 5]
Local $str[1] = [""]

getnewstr($str, $myArray)

Func getnewstr($strarray, $aArray)
        Local $newstrarray[0]
        For $i = 0 To UBound($strarray) - 1
                For $j = 0 To UBound($aArray) - 1
                        _ArrayAdd($newstrarray, $strarray[$i] & $aArray[$j])
                        ConsoleWrite($strarray[$i] & $aArray[$j] & @CRLF)
                Next
        Next
        If StringLen($newstrarray[0]) < UBound($aArray) Then
                getnewstr($newstrarray, $aArray)
        EndIf
EndFunc   ;==>getnewstr

评分

参与人数 1金钱 +30 收起 理由
黑色袜子 + 30 学习了~!

查看全部评分

发表于 2015-7-8 22:42:22 | 显示全部楼层
本帖最后由 luren666 于 2015-7-8 22:43 编辑

这个等于是穷举了所有的可能的组合,随着数组元素的增加,运算量也是呈指数级的增长。
发表于 2015-7-8 22:42:23 | 显示全部楼层
本帖最后由 luren666 于 2015-7-9 00:47 编辑

假如数组元素数量为X,则结果的数量是X的X次方。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-27 12:19 , Processed in 0.078837 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表