递归去所有不重复的排序情况
2017-08-08 19:00
155 查看
package com.qiu; import java.util.Scanner; /** * 递归排序,去除重复的 * Created by Administrator on 2017/8/8. */ public class sortByChar { static int count=0; public static void main(String[] args){ String s = "1222"; Pailie(s,""); } static void Pailie(String s,String p){ System.out.println(p); //字符串长度小于1,换行 if(s.length()<1){ count++; } else{ int index[] = new int[s.length()]; //改循环将所有的字符第一次出现的位置记录来数组index中 for(int i =0;i<s.length();i++){ index[i] = s.indexOf(s.charAt(i)); } //只有当循环数与第一次记录数相等时才递归,保证相同字符中的第一个调用 for(int i =0;i<s.length();i++){ if(i==index[i]){ Pailie(s.substring(1),p+s.substring(0,1));//递归,打印其他字符 } s = s.substring(1)+s.substring(0,1);//循环移位 } } } }
相关文章推荐
- EasyUI Datagrid 分页的情况下实现点击表头的小三角图标对数据库中所有数据重新排序
- 不重复打印排序数组中相加和为给定值的所有三元组
- 排序-快速排序-优化-使用三向切分(优化重复元素的情况
- 一个数组中有65535个数不重复的大于0的整数(即:0~~65535内所有不重复的整数,数序是杂乱无章的), 用最快的方式排序
- 给定一个排序链表,删除所有重复的元素每个元素只留下一个。
- 不重复打印排序数组中相加和为给定值的所有二元组和三元组
- 给定一个排序的链表,删除所有具有重复数字的节点,从原始列表中只留下不同的数字。
- 删除排序链表的所有重复节点
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 错误修正:多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表.
- sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表
- java 集合 从类似如下的文本文件中读取出所有的姓名,并打印出重复的 * 姓名和重复的次数,并按重复次数排序:
- 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如: 原始字符串是"abc",打印得到下列所有组合情况
- 面试题:从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序
- 一个数组中有65535个数不重复的大于0的整数(即:0~~65535内所有不重复的整数,数序是杂乱无章的), 用最快的方式排序
- 不重复打印排序数组中相加和为给定值的所有二元三元组
- 左神算法 不重复打印排序数组中相加和为给定值的所有二元组
- 一个数组中有65535个数不重复的大于0的整数(即:0~~65535内所有不重复的整数,数序是杂乱无章的), 用最快的方式排序
- EasyUI Datagrid 分页的情况下实现点击表头的小三角图标对数据库中所有数据重新排序
- 删除排序数组中的重复数字