给出一个字符串S(可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = "1312",
输出为:
 
1123
1132
1213
1231
1312
1321
2113
2131
2311
3112
3121
3211

Input 输入一个字符串S(S的长度 <= 9,且只包括0 - 9的阿拉伯数字)

Output 输出S所包含的字符组成的所有排列Sample Input

1312

Sample Output

1123
1132
1213
1231
1312
1321
2113
2131
2311
3112
3121
3211 注意是输出字符排列,所以第一位可以为0;java会超时,卡输入,用快速输入
代码:
     import java.util.Arrays;
     import java.util.Scanner;
static int a[]=new int[10];
static int b[]=new int [10];
static boolean vis[]=new boolean[10];
static void dfs(int step,int n){
if(step==n){
// if(b[0]==0) return ;
for(int i=0;i<n;i++) out.print(b[i]);
out.println();
}
for(int i=0;i<n;i++){
if(!vis[i]){
vis[i]=true;
b[step]=a[i];
dfs(step+1,n);
vis[i]=false;
while(a[i]==a[i+1]) i++;
}
}
}
public static void main(String[] args) {
String s=scan.next();
for(int i=0;i<s.length();i++) a[i]=s.charAt(i)-'0';
Arrays.sort(a,0,s.length());
dfs(0,s.length());
out.flush();
}
}

最新文章

  1. Java final自变量
  2. Linux学习笔记(1)Linux虚拟机安装过程中的知识点及常用管理工具
  3. 九、UINavigationController切换视图 实例
  4. Javascript设计模式之我见:迭代器模式
  5. opencv初体验
  6. JVM - 内存溢出问题排查相关命令jcmd jmap
  7. js 记忆函数
  8. POJ1789 Truck History 【最小生成树Prim】
  9. 采用Duplicate target database在线恢复秩序oracle datagard图书馆设备
  10. delphi 快捷键大全
  11. JS-DOM操作应用高级(二)
  12. 三星note4,微信公众号开发,页面闪退
  13. Linux安装简介
  14. ajaxfileupload原理及用法,主要用于即想用ajax序列化传递参数,又必须上传文件
  15. python趣味——与MS系列编译器一样强大的Unicode变量名支持
  16. zabbix 主动模式和被动模式说名
  17. Behavior开发时找不到Expression.Interactions的问题解决
  18. Struts2 架构图
  19. Excel文件的读写
  20. Unity资源Assetbundle

热门文章

  1. JaveScript遍历数组的方法
  2. cf999E (强联通分量模板题)
  3. jquery ajax简单书写
  4. Spring-微服务
  5. 剑指offer-面试题35-复杂链表的复制-链表
  6. ArcMap 发布地图服务,提示发布工具没有启动
  7. Python安装和配置环境变量(简明教程)
  8. 【database】oracle触发器基础
  9. Pycharm控制台乱码问题
  10. LED Candle Light Factory-LED Candle Light: Full Of Romance