算法练习----java字符全排列
/**
* @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字符全排列相关推荐
- 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...
- PAT乙级算法-1014(JAVA实现)
PAT乙级算法-1014(JAVA实现) 注意事项: 解题思路-本题主要是对字符进行操作,A对应的ASCII位65,B的为66 依次加1, 详细解题思路看代码 package pta; import ...
- 算法题JAVA常用库函数
算法题JAVA常用库函数 字符串 整数转字符串: String str = String.valueOf(a); 字符串转字符数组: char[] chars = str.toCharArray(); ...
- kmp java_KMP算法的JAVA实现
什么是KMP算法 Knuth-Morris-Pratt算法(简称KMP)是常用的字符串匹配算法之一. 假设现在有一个模式串a="ABACABAD"和一个主串b="BBC ...
- 【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】
[015-3 Sum(三个数的和)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given an array S of n integers, are there ...
- java实现 k nn算法_数据挖掘(二)——Knn算法的java实现
本文接数据挖掘-基于Kmeans算法.MBSAS算法及DBSCAN算法的newsgroup18828文本聚类器的JAVA实现(上). (update 2012.12.28 关于本项目下载及运行的常见问 ...
- 基于连通域字符分割的流程_基于改进连通域算法的车牌字符分割方法
基于改进连通域算法的车牌字符分割方法 朱亚萍,邱锦山,杨成忠 [摘 要] 摘要:为了解决车牌字符分割中不连通汉字分割.粘连字符分割以及 竖直边框干扰等问题,提出了一种基于改进连通域算法的车牌字符分割方 ...
- 负载均衡算法及其Java代码实现
负载均衡算法及其Java代码实现 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须 ...
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】...
[109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 ...
最新文章
- 14岁清华本科新生免试直博!高校新生大数据陆续曝光,男女比例、年龄差距各异......
- 观念什么意思_俗语“女怕午时生,男怕子夜临”是啥意思?古人的忌讳有道理吗?...
- webform登录操作中正则表达式运用
- 关于时间类型数据的转换
- C++入门指南及实战 第三步 基本变量
- position定位 响应式_使用 Vue3 实现双盒子定位 Overlay
- java url参数转换:_提示:通过URL激活并发送参数
- 判断当前js运行的平台环境 取自vue源码
- 统计字符串中个字符的个数
- js 中通过 var 在声明的变量中写方法
- html5实现电子签名并下载
- newifi3刷机 php,newifi3breed解锁新路由3刷机免解锁刷breed详细方法老毛子Padavan固件...
- gird布局几种用法
- 锐龙4750u和4800u的区别
- DCT域图像水印技术
- opencv 读取NV12格式(.yuv)文件,并转为RGB格式保存为JPG
- VLAN应用篇系列:(7)华为 H3C交换机VLAN聚合功能(实现不同VLAN,同一网段,二层隔离,三层互通)
- branca.colormap自带的json文件对颜色的定义
- 算法设计与分析--棋盘覆盖问题解决思想
- 键盘按键F1-F12失效的解决办法(ArchLinux)
热门文章
- 【FPGA】SRIO IP核系统总览以及端口介绍(一)(User Interfaces 之 I/O Port)
- 初识Tcl(九):Tcl 字典
- 德国蓝皮书:解决特定问题 德国渐进建设智慧城市
- C++流的streambuf详解及TCP流的实现
- 排错经历:openstack搭建dashboard进入输入帐号密码登录后报错
- 编写高质量JavaScript代码的基本技巧
- Win7 64位系统 注册 ocx控件
- Cmake,source_group
- 阅读记录:Learning multiple layers of representation(杂乱笔记)
- 使用Process.Start打开文件夹或网页