【追求进步】字符串的排列
2016-03-31 15:50
253 查看
题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
在线代码:
import java.util.ArrayList; import java.util.Collections; public class Solution { public ArrayList<String> Permutation(String str) { ArrayList<String> result=new ArrayList<String>(); //边界条件的处理 if(str==null||str.length()>9||str.length()==0){ return result; } str=str.trim();//去除空格 Permutation(str.toCharArray(),0,result);//递归调用 Collections.sort(result); return result; } public void Permutation(char[] charnum,int start,ArrayList<String> result){ if(start==charnum.length){//如果长度为0的处理 result.add(new String(charnum)); }else{ for(int i=start;i<charnum.length;++i){ if(i!=start&&charnum[i]==charnum[start])continue;//有重复的字符则继续 //交换位置 char temp=charnum[start]; charnum[start]=charnum[i]; charnum[i]=temp; //递归调用 Permutation(charnum,start+1,result); // temp=charnum[start]; charnum[start]=charnum[i]; charnum[i]=temp; } } } }
相关文章推荐
- Winio64在64位系统中初始化失败问题
- Java锁之自旋锁详解
- 【OpenCV】OpenCV3的第三天——core组件
- 多线程:下载管理器(模拟 SDWebImage)
- APP Run In Background(App 的后台运行)
- Eclipse常用设置
- 笔记 AsyncTask运行原理
- xcode7.2如何真机测试iOS9.3系统
- 使用git pull文件时和本地文件冲突怎么办?
- 通过url地址获取数据后将数据利用SpringMVC的@ResponseBody返回中文可能出现乱码地方
- iOS之隐藏/显示tabbar
- 归并排序的使用
- IOS折线统计图
- 李彦宏:数据技术共享与“圈子联合文化”
- ExecutorService的几种关闭线程池方法
- ssh 无密码登陆
- SecurCRT命令回显设置
- 详解JavaScript表单验证(E-mail 验证)
- linux 安装svn服务端
- Linux修改内核使得普通用户可以打印kmsg内容