【java】全排列 枚举子集
来源:互联网 发布:轩辕剑符鬼进阶数据 编辑:程序博客网 时间:2024/05/21 12:07
全排列:
输入一个包含n个字符的字符串,输出该字符串的全排列。
样例输入:
abc
ab
样例输出:
abc
acb
bac
bca
cab
cba
ab
ba
import java.util.Scanner;import java.util.Arrays;public class Main {public static void permutation(char[]arr,char[] res,int[]visited,int cursor){if(cursor==arr.length){for(char c:res)System.out.print(c);System.out.println();return;}for(int i=0;i<arr.length;i++){if(visited[i]==0){res[cursor]=arr[i];visited[i]=1;permutation(arr,res,visited,cursor+1);visited[i]=0;}}}public static void main(String[] args){Scanner scanner = new Scanner(System.in);while(scanner.hasNext()){String s=scanner.nextLine();char[] arr=s.toCharArray();char[] res=new char[arr.length];int[] visited=new int[arr.length];Arrays.fill(visited, 0);permutation(arr,res,visited,0);}scanner.close();}}
枚举子集:
输入一个包含n个字符的字符串,输出该字符串的所有可能的子集。
样例输入:
abc
样例输出:
a
ab
abc
ac
b
bc
c
import java.util.Scanner;public class Main {public static void subset(char[]arr,char[] res,int cursor,int index){for(int i=0;i<cursor;i++){System.out.print(res[i]);}System.out.println();for(int i=index;i<arr.length;i++){res[cursor]=arr[i];index=i+1;subset(arr,res,cursor+1,index);}}public static void main(String[] args){Scanner scanner = new Scanner(System.in);while(scanner.hasNext()){String s=scanner.nextLine();char[] arr=s.toCharArray();char[] res=new char[arr.length];subset(arr,res,0,0);}scanner.close();}}
枚举子集的二进制算法:
import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scanner = new Scanner(System.in);while(scanner.hasNext()){String s=scanner.nextLine();char[] arr=s.toCharArray();int n=arr.length;for(int i=0;i<(1<<n);i++){for(int j=0;j<n;j++){if((i&(1<<j))!=0){System.out.print(arr[j]);}}System.out.println();}}scanner.close();}}
0 0
- 【java】全排列 枚举子集
- 全排列、子集
- 全排列与子集生成
- 子集和全排列问题
- 子集生成+stl全排列
- java 枚举子集算法
- 递归枚举全排列
- 枚举全排列
- 枚举全排列
- 全排列 枚举
- 枚举全排列
- 求集合的子集、全排列总结
- 求数组的全部子集 && 全排列
- 子集(全排列的延伸)
- 回溯法 求集合全排列、子集
- 全排列以及集合的子集
- 枚举全排列 STL next_permutation
- uv216 暴力枚举全排列
- Flink中在source流中自定义timestamp和watermark
- CSS3实现正方形立方体旋转
- 遍历目录下的文件
- WIN7+QTmingw+opencv安装配置
- springmvc 移动端接收图片
- 【java】全排列 枚举子集
- Annotation注解
- activity管理类
- iOS RunLoop简介
- Longest Consecutive Sequence
- vs2013+opencv3 摄像头显示
- 浅谈android hook技术
- 瑞神要考研
- Largest Rectangle in Histogram