在线编程--全排列
来源:互联网 发布:sql重复的行无法删除 编辑:程序博客网 时间:2024/04/26 08:42
import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;//全排列 使用回溯法public class Main{ public static void main(String[] strs) { String str="abc"; ArrayList<String> result=Permutation(str); for(int i=0;i<result.size();i++){ System.out.println(result.get(i)); } } public static ArrayList<String> Permutation(String str) { //本题使用回溯法 ArrayList<String> result=new ArrayList<String>(); if(str.length()==0||str==null) return result; //如果是空的直接返回 HashSet<String> set=new HashSet<String>(); func(set,str.toCharArray(),0); result.addAll(set); Collections.sort(result); return result; } public static void func(HashSet<String> set, char[] arr, int n){ if(n==arr.length){ //满了 set.add(new String(arr)); return ; } for(int i=n;i<arr.length;i++){ swap(arr,i,n); func(set, arr, n+1); swap(arr,i,n); } } public static void swap(char[] arr,int i,int j){ char c=arr[i]; arr[i]=arr[j]; arr[j]=c; }}
0 0
- 在线编程--全排列
- 编程实现全排列
- 全排列延伸编程题目
- 【全排列】亚马逊在线测试-找下一个回文字符串
- c语言编程实现数字全排列
- 167 请编程实现全排列算法
- 全排列(编程之美)
- <编程之法>1.3 字符串全排列
- 在线学习新编程 技巧全攻略
- 在线学习新编程 技巧全攻略
- 在线学习新编程 技巧全攻略
- 在线学习新编程 技巧全攻略
- 在线学习新编程 技巧全攻略
- 全排列
- 全排列
- 全排列
- 全排列
- 全排列
- 微服务框架Spring Cloud介绍 Part3: Mysteam项目结构与开发用户注册服务
- Android app的文件目录
- 欢迎访问我的主页zhangdanyang.com
- 高效的最大公约数求解法
- 如何利用Caffe训练ImageNet分类网络
- 在线编程--全排列
- 组件使用component
- 儿子选择器 >
- 7.Operators Categories - 按目录分类的主要操作符列表
- linux 命令复制
- 重阳是最美的节日
- 算法导论---逆序对 p24题,2-4
- 在不同Activity之间传递数据的四种常用方法
- ireport 初学