!难!获取一个不定长字符串获取每个字符大小写可能
什么语言不重要
重要的是思路
问题是这样的
我有许多字符串 比如 alice,bob,john......
我需要获得一个字符串中所有字符的大小写的可能比
如bob这个字符串 那他就有 bob boB bOb bOB Bob BoB.....等等多种情况
假设字符串长度为len 那总共有2的len次方种可能
我需要得到所有的可能 怎么样实现会比较好?
就算穷举也好
先谢谢了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(22)
也可以使用树搜索。暴力枚举的方法都可以使用树搜索吧。
root -> b , B .
b -> o , O ;
o -> ...
深搜最好。
当然,相比循环的实现,这个的确太麻烦了...
不过我只想到了这个方法,循环实现看到后竟然有恍然大悟的感觉。哎,数学白学了。
笨笨笨
树搜索我没学好 :(
是的
对于字符串,先统一将其全部字符变为大写(或小写)再进行后续处理
引用来自“inuxor”的评论
我是这么想的:
生成长度为len的二进制字串,进行加1循环,最终得到len长度内所有的01序列。以此为模板去生成字符串。
例如bob,len = 3
初始模板000,循环结束111
该区间包含000,001,010,011,100,101,110,111这几个模板
0小1大,挨个套上
回复
谢谢!!
回复
你要判断所有可能性的话 不就是应该全部变成小写 然后求全部变成大写的所有可能吗 不管初始值是什么样的 顶多在判断中重复一次判断是否相等 因为过程中会出现一种情况与初始值相同 但是其他的可能都还是要判断的
额 我觉得这里可能不大适用 具体的问题我重新在下面描述了一下 如果有时间能再帮忙看看吗? 谢谢
谢谢回复 原因和具体问题我回复在下面
经典的 01组合的n位 求00...000 ~ 11....111有多少种的算法
说实话,没看懂
感谢回复 原因和具体问题我回复在下面
回复
...密码穷举啊你这是...只能一个一个试了...
感谢回复 原因和具体问题我回复在下面 我不知道怎么把这种情况用递归的思想实现出来 如果有思路能指点一下就好了 再次感谢
回复
大小写可以用ASCII来替代,每个字母是2种可能,位移32,然后用递归进行排列组合
回复
谢谢!
这个不是一个标准的递归吗,很难实现吗....
感谢回复 原因和具体问题我回复在下面
先把你为什么要这么做说出来
我是这么想的:
生成长度为len的二进制字串,进行加1循环,最终得到len长度内所有的01序列。以此为模板去生成字符串。
例如bob,len = 3
初始模板000,循环结束111
该区间包含000,001,010,011,100,101,110,111这几个模板
0小1大,挨个套上
非常感谢!我最后采用的就是这种思路 再次感谢!
引用来自“inuxor”的评论
我是这么想的:
生成长度为len的二进制字串,进行加1循环,最终得到len长度内所有的01序列。以此为模板去生成字符串。
例如bob,len = 3
初始模板000,循环结束111
该区间包含000,001,010,011,100,101,110,111这几个模板
0小1大,挨个套上