/**
* @author wang:
* @version 创建时间:2016年10月24日 下午9:38:35
* 算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。
* 如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。
*/
public class test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.next();List<Character> lists = norepeat(str);//去除重复pailie(lists, "");}//首先去除重复public static List<Character> norepeat(String str){char[] chars = str.toCharArray();List<Character> lists = new ArrayList<>();for(char j : chars){if(Collections.frequency(lists, j) < 1) lists.add(j);}return lists;}//递归排列public static void pailie(List<Character> lists,String out){if(lists.isEmpty()) System.out.println(out);for(int i=0;i<lists.size();i++){List<Character> temp = new LinkedList<>(lists);pailie(temp, out+temp.remove(i));}}
}

算法练习----java字符全排列相关推荐

  1. 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  2. PAT乙级算法-1014(JAVA实现)

    PAT乙级算法-1014(JAVA实现) 注意事项: 解题思路-本题主要是对字符进行操作,A对应的ASCII位65,B的为66 依次加1, 详细解题思路看代码 package pta; import ...

  3. 算法题JAVA常用库函数

    算法题JAVA常用库函数 字符串 整数转字符串: String str = String.valueOf(a); 字符串转字符数组: char[] chars = str.toCharArray(); ...

  4. kmp java_KMP算法的JAVA实现

    什么是KMP算法 Knuth-Morris-Pratt算法(简称KMP)是常用的字符串匹配算法之一. 假设现在有一个模式串a="ABACABAD"和一个主串b="BBC ...

  5. 【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】

    [015-3 Sum(三个数的和)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given an array S of n integers, are there ...

  6. java实现 k nn算法_数据挖掘(二)——Knn算法的java实现

    本文接数据挖掘-基于Kmeans算法.MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(上). (update 2012.12.28 关于本项目下载及运行的常见问 ...

  7. 基于连通域字符分割的流程_基于改进连通域算法的车牌字符分割方法

    基于改进连通域算法的车牌字符分割方法 朱亚萍,邱锦山,杨成忠 [摘 要] 摘要:为了解决车牌字符分割中不连通汉字分割.粘连字符分割以及 竖直边框干扰等问题,提出了一种基于改进连通域算法的车牌字符分割方 ...

  8. 负载均衡算法及其Java代码实现

    负载均衡算法及其Java代码实现 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须 ...

  9. 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】...

    [109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 ...

最新文章

  1. 14岁清华本科新生免试直博!高校新生大数据陆续曝光,男女比例、年龄差距各异......
  2. 观念什么意思_俗语“女怕午时生,男怕子夜临”是啥意思?古人的忌讳有道理吗?...
  3. webform登录操作中正则表达式运用
  4. 关于时间类型数据的转换
  5. C++入门指南及实战 第三步 基本变量
  6. position定位 响应式_使用 Vue3 实现双盒子定位 Overlay
  7. java url参数转换:_提示:通过URL激活并发送参数
  8. 判断当前js运行的平台环境 取自vue源码
  9. 统计字符串中个字符的个数
  10. js 中通过 var 在声明的变量中写方法
  11. html5实现电子签名并下载
  12. newifi3刷机 php,newifi3breed解锁新路由3刷机免解锁刷breed详细方法老毛子Padavan固件...
  13. gird布局几种用法
  14. 锐龙4750u和4800u的区别
  15. DCT域图像水印技术
  16. opencv 读取NV12格式(.yuv)文件,并转为RGB格式保存为JPG
  17. VLAN应用篇系列:(7)华为 H3C交换机VLAN聚合功能(实现不同VLAN,同一网段,二层隔离,三层互通)
  18. branca.colormap自带的json文件对颜色的定义
  19. 算法设计与分析--棋盘覆盖问题解决思想
  20. 键盘按键F1-F12失效的解决办法(ArchLinux)

热门文章

  1. 【FPGA】SRIO IP核系统总览以及端口介绍(一)(User Interfaces 之 I/O Port)
  2. 初识Tcl(九):Tcl 字典
  3. 德国蓝皮书:解决特定问题 德国渐进建设智慧城市
  4. C++流的streambuf详解及TCP流的实现
  5. 排错经历:openstack搭建dashboard进入输入帐号密码登录后报错
  6. 编写高质量JavaScript代码的基本技巧
  7. Win7 64位系统 注册 ocx控件
  8. Cmake,source_group
  9. 阅读记录:Learning multiple layers of representation(杂乱笔记)
  10. 使用Process.Start打开文件夹或网页