[CC150] Get all permutations of a string
2024-09-01 08:51:45
Problem: Compute all permutations of a string of unique characters.
此题用循环的方式不好做,下面是一种递归的思路:
把给的字符串看成一个字符集合,每次从这个集合里拿出一个字符来填到下面的空格中。填的顺序从左到右。
把a1填到第一个空格里是一种情况,集合剩下的部分填到2-9的空格里;
把a2填到第一个空格里是一种情况,集合剩下的部分填到2-9的空格里;
。。。。。。
这样递归的进行下去,直到集合里没有剩余,所有的情况就被穷尽了。
public ArrayList<String> getPerms(String str){
ArrayList<String> result = new ArrayList<String>();
getPerms("", str, result);
return result;
} public void getPerms(String prefix, String str, ArrayList<String> result){
if(str == null || str.length() == 0){
result.add(prefix);
return;
} for(int i = 0; i < str.length(); ++i){
char ch = str.charAt(i);
getPerms(prefix+ch, str.substring(0, i) + str.substring(i+1), result);
}
}
最新文章
- ImportError: cannot import name &#39;check_arrays&#39;
- 3.Complementing a Strand of DNA
- C#语言基础-类——string增加内容
- 动手学习TCP: 环境搭建
- LAMP虚拟主机配置以及控制目录访问
- mergeIDE
- C/C++遍历目录下的所有文件(Windows篇,超详细)
- admin的基础配置
- Java经典编程题50道之十七
- 机器学习基石:06 Theory of Generalization
- Cookie、sessionStorage、localStorage的区别
- 发现了一个非常棒的pyqt5的例子集
- Python高级笔记(一) -- GIL (全局解释器锁)
- python Cookie Session 相关用法
- SSH学习
- python3 字典update与deepcopy
- JS继承(一)
- Python 的 14 张思维导图汇总
- Expected value at 1:0 异常解决方法
- D - Bridge
热门文章
- VSPackge插件系列:如何正确获取DTE
- 关于JFace中的向导式对话框(WizardDialog类)
- 之前做web性能优化的一些个人心得
- CSS经典布局-圣杯布局、双飞翼布局
- Cordova+angularjs+ionic+vs2015开发(四)
- 利用wireshark抓取Telnet的用户名和密码
- ###《More Effective C++》- 基础议题
- navagationController 的子控制器如何取消右滑返回
- Java实战之03Spring-02Spring的核心之IoC
- 《C和指针》