字符串的排列
来源:互联网 发布:一个能看网络攻击网站 编辑:程序博客网 时间:2024/06/15 01:02
题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
解题思路:交换第一个位置的字符和其他位置的字符,然后递归添加结果。
一刷ac
递归
import java.util.ArrayList;import java.util.HashSet;import java.util.Collections;public class Solution { public ArrayList<String> Permutation(String str) { ArrayList<String> res = new ArrayList<String>(); HashSet<String> set = new HashSet<String>(); if(str == null || str.length() == 0) return res; if(str.length() == 1){ res.add(str); return res; } for(int i = 0; i < str.length(); i++){ String newstr = str.substring(0, i) + str.substring(i+1, str.length()); ArrayList<String> tmp = Permutation(newstr); for(String s : tmp) set.add(str.charAt(i)+s); } for(String s : set) res.add(s); Collections.sort(res); return res; }}
import java.util.ArrayList;import java.util.HashSet;import java.util.Collections;public class Solution { public ArrayList<String> Permutation(String str) { ArrayList<String> res = new ArrayList<String>(); if(str == null || str.length() == 0) return res; char[] arr = str.toCharArray(); dfs(arr, 0, res); Collections.sort(res); return res; } public void dfs(char[] str, int index, ArrayList<String> res){ if(index == str.length - 1){ res.add(new String(str)); } for(int i = index; i < str.length; i++){ if(i == index || str[i] != str[index]){ swap(str, i, index); dfs(str, index+1, res); swap(str, i, index); } } } public void swap(char[] str, int i, int j){ char ch = str[i]; str[i] = str[j]; str[j] = ch; }}
0 0
- 字符串的全排列
- 字符串的全排列
- 转载 字符串的排列
- 字符串的排列--总结
- 字符串的排列
- 字符串的全排列
- 字符串的排列
- 53.字符串的排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的全排列
- 字符串的排列
- 字符串的排列
- 字符串的排列
- 字符串的倒序排列
- 字符串的全排列
- 字符串的排列
- Scrapy学习笔记
- 学习笔记——同步、通信与死锁(1)
- 资料备忘
- 什么是web?
- 系统dos命令
- 字符串的排列
- Android开发中的MVP简介(一)
- springMVC和struts2的区别
- [计算机领域的思维导图系列整理][java]多线程
- hdu4268Alice and Bob(multise)
- knockout + require + director 构建单页面程序(director)
- C++对象模型Data语意学分析、虚继承底层实现机制
- java基础 课后错题集(1)
- 自定义ScrollView下拉头部变大,弹性动画缩回原型