//题目:利用1、2、2、3、4这4个数字,用java写一个main函数打印出所有不同的排列,如12234,,2234等,要求打印出来不能有重复
1 package test123;
2
3 import java.util.Arrays;
4
5 public class test123 {
6 public static int count = 0;
7 public static void main(String[] args) {
8 String s = "1223";
9 String s2 = "1232";
10 int t = 1&0;
11 System.out.println(t);
12
13 int index[] = new int[s.length()];
14 for (int i = 0; i < s2.length(); i++) {
15 index[i] = s2.indexOf(s2.charAt(i));
16 }
17 //System.out.print(Arrays.toString(index) );
18 Pailie(s, "");
19 }
20 static void Pailie(String s, String p){
21 if (s.length() < 1) {
22 count++;
23 System.out.println(s+p);
24 }
25 else{
26 int index[] = new int[s.length()];
27 for (int i = 0; i < s.length(); i++) {
28 index[i] = s.indexOf(s.charAt(i));
29 }
30 //System.out.print(Arrays.toString(index) );
31 for (int i = 0; i < s.length(); i++) {
32 if(i == index[i]){
33 Pailie(s.substring(1), p+s.substring(0, 1));
34 }
35 s = s.substring(1) + s.substring(0, 1);
36 }
37 }
38 }
39 }

循环移位提取前缀,将后缀进行全排列,如果有重复的数字,只提取一次前缀,因为前缀是一样的,则后缀的排列也是一样的,就会有重复的排列输出。

假设 s = "1234", 没有重复的数字:

java 循环移位输出全排列的更多相关文章

  1. 关于java 日文输出信息到 Jenkins Console Output 乱码问题

    java 将从读取到的外部调用程序的带有日文字符的输出信息 输出到Jenkins 上的Console Output 上乱码. 现象分析: Jenkins 上可以将日文正常显示出来,但是读取外部程序的输 ...

  2. 7.20.01 java格式化输出 printf 例子

    java格式化输出 printf 例子 importjava.util.Date; publicclassPrintf { publicstaticvoidmain(String[] args) { ...

  3. PTA 输出全排列(20 分)

    7-2 输出全排列(20 分) 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出正整数n(<10). ...

  4. Java-Runoob-高级教程-实例-方法:02. Java 实例 – 输出数组元素

    ylbtech-Java-Runoob-高级教程-实例-方法:02. Java 实例 – 输出数组元素 1.返回顶部 1. Java 实例 - 输出数组元素  Java 实例 以下实例演示了如何通过重 ...

  5. Java代码输出到txt文件(申请专利贴源码的必备利器)

    最近公司在申请专利,编写不少文档,项目的代码量实在是过于庞大.如果一个一个的复制粘贴虽然能够完成,但是对于程序员而言实在没有这个必要.shell或者python就能解决这个问题.由于我个人对于shel ...

  6. Java 输入/输出 反射

    Java  输入/输出   反射 输入输出和反射 一.数据流的基本概念 流一般分为 ( Input Stream ) 和输出流 ( Output Stream ) 两类,但这种划分并不是绝对的.比如一 ...

  7. 【转】java格式化输出 printf 例子

    [转]java格式化输出 printf 例子 转自http://www.cnblogs.com/TankMa/archive/2011/08/20/2146913.html#undefined imp ...

  8. Java实例 Part1:Java基础输出语句

    ** Part1:Java基础输出语句 ** 第一部分最基础,就是标准的输出语句. ps:(目前还没熟悉这个编辑器,先尝试一下) Example01 : 输出"hello world&quo ...

  9. java:集合输出之foreach输出三

    java:集合输出之foreach输出三 foreach输出: List<String> allList = new ArrayList<String>(); allList. ...

随机推荐

  1. ES6 Class类

    在ES6中,class (类)作为对象的模板被引入,可以通过 class 关键字定义类.class 的本质是 function.它可以看作一个语法糖,让对象原型的写法更加清晰.更像面向对象编程的语法类 ...

  2. Spark—RDD编程常用转换算子代码实例

    Spark-RDD编程常用转换算子代码实例 Spark rdd 常用 Transformation 实例: 1.def map[U: ClassTag](f: T => U): RDD[U]  ...

  3. ubuntu18.04aliyun

    deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirr ...

  4. python基础之列表推导式

    #列表推导式 ---> 返回的是列表 for语句 效率更高# 1*1 2*2 3*3 4*4 5*5 6*6 7*7 8*8 9*9# import time# to = time.clock( ...

  5. golang拾遗:内置函数len的小知识

    len是很常用的内置函数,可以测量字符串.slice.array.channel以及map的长度/元素个数. 不过你真的了解len吗?也许还有一些你不知道的小知识. 我们来看一道GO101的题目,这题 ...

  6. Vue 可拖拽组件 Vue Smooth DnD 详解和应用演示

    本文发布自 https://www.cnblogs.com/wenruo/p/15061907.html 转载请注明出处. 简介和 Demo 展示 最近需要有个拖拽列表的需求,发现一个简单好用的 Vu ...

  7. 【每日算法】存在重复元素 II

    题目描述 这是 LeetCode 上的 219. 存在重复元素 II, 难度为 [简单] 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nu ...

  8. Java集合 - 初始化写法

    List的初始化方法 方法一 List<Integer> list= new ArrayList<Integer>(){{ add(1); add(2); add(3); }} ...

  9. mysql - 按条件统计

    在表中分别统计mt =0 和 mt>0 的个数 方法一:select count(if(mt=0,1,null)) as a,count(if(mt>0,1,null)) as b fro ...

  10. Python3.9安装PySpider步骤及问题解决

    先写一些前言吧,自己感觉python已经有一定的基础了,但是在安装这个过程居然用了一下午,感觉有些收货,特地写下来与大家分享一下. PySpider是一个强大的网络爬虫系统,GitHub地址:http ...