剑指Offer—27—字符串的排列
来源:互联网 发布:mysql主键和外键作用 编辑:程序博客网 时间:2024/06/05 10:34
字符串的排列——输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符 a, b, c 所能排列出来的所有字符串 abc, acb, bac, bca, cab 和 cba。(输入一个字符串,长度不超过 9 (可能有字符重复),字符只包括大小写字母。)
package A27字符串的排列;import java.io.BufferedWriter;import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.List;import java.util.Set;public class Solution { public ArrayList<String> Permutation(String str) { char[] arr = new char[str.length()]; for(int i=0;i<str.length();i++){ arr[i] = str.charAt(i); } ArrayList<String> list = new ArrayList<>(); test(arr, 0, str.length()-1,list); Set<String> set = new HashSet<>(); set.addAll(list); list.clear(); list.addAll(set); return list; } public void test(char[] arr, int start, int end,ArrayList<String> list){ if (start == end) { StringBuilder stringBuilder = new StringBuilder(); for(int i=0;i<arr.length;i++){ stringBuilder.append(arr[i]); } list.add(stringBuilder.toString()); } for(int i=start;i<=end;i++){ char temp = arr[start]; arr[start] = arr[i]; arr[i] = temp; test(arr, start+1, end,list); temp = arr[start]; arr[start] = arr[i]; arr[i] = temp; } } public static void main(String[] args) { Solution solution = new Solution(); char[] arr = {'a','b','c'}; ArrayList<String> list = new ArrayList<>(); ArrayList<String> list2 = solution.Permutation("aa"); for (String string : list2) { System.out.println(string); } }}
阅读全文
0 0
- 剑指offer(27)—字符串的排列
- 《剑指offer》——字符串的排列
- 剑指offer——字符串的排列
- 剑指offer——字符串的排列
- 剑指offer——字符串的排列
- 剑指offer—字符串的排列
- 剑指Offer—字符串排列
- 剑指Offer——(27)字符串的排列
- 剑指Offer—27—字符串的排列
- 剑指offer 27 字符串的排列
- 剑指offer——面试题28:字符串的排列
- 剑指offer 面试题28—字符串的排列
- 剑指Offer—编程题28(字符串的排列)
- 剑指offer系列—T28字符串的排列
- 【剑指offer】字符串的排列
- 剑指offer--字符串的排列
- 《剑指offer》字符串的排列
- 【剑指Offer】字符串的排列
- Java获取首字符串大小写
- 时间复杂度
- bzoj 3282: Tree LCT第三题
- SpringMVC文件上传
- 我的Ubuntu常用软件(良心|继续补充)
- 剑指Offer—27—字符串的排列
- openstack keystone token-get报错'NoneType' object has no attribute 'has_service_catalog'
- [Linux]--底层文件 I/O 操作之多路复用
- js-01-基础-变量、数据类型、数据的操作
- 哈夫曼树学习小记
- Linux-安装MongoDB
- HDU
- HDOJ1240 BFS入门水题 + BFS模板程序
- 17AHU排位赛1 E题(gcd>1序列,容斥)