!难!获取一个不定长字符串获取每个字符大小写可能

发布于 2021-12-01 00:20:35 字数 312 浏览 871 评论 22

什么语言不重要

重要的是思路 

问题是这样的

我有许多字符串 比如 alice,bob,john......

我需要获得一个字符串中所有字符的大小写的可能比

如bob这个字符串 那他就有   bob  boB bOb bOB Bob BoB.....等等多种情况 

假设字符串长度为len 那总共有2的len次方种可能

我需要得到所有的可能 怎么样实现会比较好?

就算穷举也好

先谢谢了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(22

柒夜笙歌凉 2021-12-02 14:58:24

也可以使用树搜索。暴力枚举的方法都可以使用树搜索吧。

root -> b , B .

b -> o , O ;

o -> ...

深搜最好。

当然,相比循环的实现,这个的确太麻烦了...

不过我只想到了这个方法,循环实现看到后竟然有恍然大悟的感觉。哎,数学白学了。

笨笨笨

半世蒼涼 2021-12-02 14:58:24

树搜索我没学好 :(

混吃等死 2021-12-02 14:58:23

是的

归属感 2021-12-02 14:58:22

对于字符串,先统一将其全部字符变为大写(或小写)再进行后续处理

泪冰清 2021-12-02 14:58:19

引用来自“inuxor”的评论

我是这么想的:

生成长度为len的二进制字串,进行加1循环,最终得到len长度内所有的01序列。以此为模板去生成字符串。

例如bob,len = 3

初始模板000,循环结束111

该区间包含000,001,010,011,100,101,110,111这几个模板

0小1大,挨个套上

静谧 2021-12-02 14:58:17

回复
谢谢!!

倾城泪 2021-12-02 14:58:17

回复
你要判断所有可能性的话 不就是应该全部变成小写 然后求全部变成大写的所有可能吗 不管初始值是什么样的 顶多在判断中重复一次判断是否相等 因为过程中会出现一种情况与初始值相同 但是其他的可能都还是要判断的

路还长,别太狂 2021-12-02 14:58:17

额 我觉得这里可能不大适用 具体的问题我重新在下面描述了一下 如果有时间能再帮忙看看吗? 谢谢

为你鎻心 2021-12-02 14:58:16

谢谢回复 原因和具体问题我回复在下面

绝情姑娘 2021-12-02 14:58:16

经典的 01组合的n位  求00...000 ~ 11....111有多少种的算法

沙与沫 2021-12-02 14:58:15

说实话,没看懂

坚持沉默 2021-12-02 14:58:09

感谢回复 原因和具体问题我回复在下面

琴流音 2021-12-02 14:57:40

回复
...密码穷举啊你这是...只能一个一个试了...

凌乱心跳 2021-12-02 14:57:32

感谢回复 原因和具体问题我回复在下面 我不知道怎么把这种情况用递归的思想实现出来 如果有思路能指点一下就好了 再次感谢

倾城泪 2021-12-02 14:56:46

回复
大小写可以用ASCII来替代,每个字母是2种可能,位移32,然后用递归进行排列组合

感情旳空白 2021-12-02 14:55:43

回复
谢谢!

牵你的手,一向走下去 2021-12-02 14:55:19

这个不是一个标准的递归吗,很难实现吗....

彼岸花ソ最美的依靠 2021-12-02 14:55:12

感谢回复 原因和具体问题我回复在下面

醉生梦死 2021-12-02 14:27:27

先把你为什么要这么做说出来

回忆凄美了谁 2021-12-02 13:49:42

我是这么想的:

生成长度为len的二进制字串,进行加1循环,最终得到len长度内所有的01序列。以此为模板去生成字符串。

例如bob,len = 3

初始模板000,循环结束111

该区间包含000,001,010,011,100,101,110,111这几个模板

0小1大,挨个套上

终止放荡 2021-12-02 11:01:39

非常感谢!我最后采用的就是这种思路 再次感谢!

皇甫轩 2021-12-01 12:49:29

引用来自“inuxor”的评论

我是这么想的:

生成长度为len的二进制字串,进行加1循环,最终得到len长度内所有的01序列。以此为模板去生成字符串。

例如bob,len = 3

初始模板000,循环结束111

该区间包含000,001,010,011,100,101,110,111这几个模板

0小1大,挨个套上

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文