字典序回溯算法.md
来源:互联网 发布:安卓软件应用 编辑:程序博客网 时间:2024/06/05 09:44
题目描述
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
算法分析(Java版本)
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; HashSet<String> set = new HashSet<String>(); fun(set, str.toCharArray(), 0); res.addAll(set); Collections.sort(res); return res; } private void fun (HashSet<String> res, char[] str, int k){ //退出条件,当交换次数为3时,结束 if (k == str.length){ res.add(new String(str)); return; } for (int i = k; i < str.length; i++){ swap(str, i ,k); fun(res, str, k + 1); swap(str, i, k); } } private void swap(char[] str, int i, int j){ if (i != j){ char t = str[i]; str[i] = str[j]; str[j] = t; } }}
阅读全文
0 0
- 字典序回溯算法.md
- MD算法
- bfs+预处理+路径回溯+字典序最小+hash
- 算法----字典序问题
- 字典序算法
- 字典序算法
- 字典序算法
- 字典序算法
- 字典序算法
- 字典序算法
- 字典序算法[转]
- 字典序算法
- 回溯算法
- 回溯算法
- 回溯算法
- 回溯算法
- 回溯算法
- 回溯算法
- 1069. 微博转发抽奖(20) PAT
- UVa1590
- 第十二章 构建API
- thread40
- SQLServer2008/2005 生成数据字典语句
- 字典序回溯算法.md
- 值得关注的几个WEB技术
- Vue.js 官方文档摘记 计算属性
- LinkedList源码分析
- semanage命令的安装
- 什么是数据持久化
- C语言基础之编译预处理及位运算
- 把TDD用到招聘中来
- 8个经过证实的方法:提高机器学习模型的准确率