剑指offer--字符串的排列
来源:互联网 发布:网络用语开屏什么意思 编辑:程序博客网 时间:2024/06/09 19:48
题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
输入描述:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。
全排列的题还是写了好几道了。用dfs和递归的;
康托展开式的
这道题,长度不超过9 dfs 还是可以写;
和链接里稍微的区别是,这里有重复字符,所以要用arrays.contain判断一下;然后字典输出;
import java.util.ArrayList;public class Solution { ArrayList<String> result = new ArrayList<>(); public ArrayList<String> Permutation(String str) { if (str.equals("")) {return result;} char[] strtochar = str.toCharArray(); char[] save = new char[strtochar.length]; boolean[] visit = new boolean[strtochar.length]; int num = 0; dfs(strtochar, visit, num,save); return result; } /*让save[]遍历strtochar[]的每一个字符,*/private void dfs(char[] strtochar, boolean[] visit, int num, char[] save) {if (num==strtochar.length) {String temp = String.copyValueOf(save);if (!result.contains(temp)) {result.add(temp);}return;}for (int i = 0; i < strtochar.length; i++) {if (!visit[i]) {visit[i]=true;save[num] = strtochar[i];num++;dfs(strtochar, visit, num, save);num--;save[num]=' ';visit[i]=false;}}}}
阅读全文
0 0
- 【剑指offer】字符串的排列
- 剑指offer--字符串的排列
- 《剑指offer》字符串的排列
- 【剑指Offer】字符串的排列
- 剑指offer--字符串的排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- 剑指offer:字符串的排列
- [剑指offer]字符串的排列
- 《剑指offer》-字符串的排列
- 剑指offer|字符串的排列
- 【剑指offer】字符串的排列
- 《剑指offer》字符串的排列
- 剑指Offer:字符串的排列
- 【剑指offer】字符串的排列
- 剑指offer-字符串的排列
- 剑指offer 字符串的排列
- 剑指offer 字符串的排列
- Linux 下route命令详解
- MVP介绍以及优化封装
- 欢迎使用CSDN-markdown编辑器
- 编译keil 遇到File has been changed outside the editor,reload?问题解决方法
- 谷歌电子市场开发流程(4)-listview的两层封装
- 剑指offer--字符串的排列
- ES6和React知识思想
- 剑指Offer----二进制中1的个数
- 小白学分布式开发5——CAP理论
- Spring框架02
- Android和H5、JS进行交互调用
- Intellij IDEA带参数启动Springboot注意事项
- JS实现从XML中获取省份和城市信息_二级联动
- 2017.7.9至2017。7.11