9.9递归和动态规划(五)——确定某字符串的所有排列组合
2015-08-11 17:45
141 查看
/**
* 功能:确定某字符串的所有排列组合。
*/
注意:不考虑重复字符。若考虑重复字符,只需在加入permulations时去掉重复的字符串即可。
* 功能:确定某字符串的所有排列组合。
*/
注意:不考虑重复字符。若考虑重复字符,只需在加入permulations时去掉重复的字符串即可。
/** * 思路:元素由少到多,将新的元素塞进所有字符串中间的任意可能位置。 * @param str * @return */ public static ArrayList<String> getPerms(String str){ if(str==null) return null; ArrayList<String> permutations=new ArrayList<String>(); if(str.length()==0){ permutations.add(""); return permutations; } char first=str.charAt(0); String remainder=str.substring(1); ArrayList<String> words=getPerms(remainder); for(String word:words){ for(int i=0;i<=word.length();i++){ String s=insertCharAt(word, first, i); permutations.add(s); } } return permutations; } public static String insertCharAt(String word,char c,int i){ String start=word.substring(0, i); String end=word.substring(i); return start+c+end; }
相关文章推荐
- SqlBulkCopy 高效、大数据量复制数据
- 加减 验证码
- 关于xloader和uboot的几个初级问题
- hdu 1247 Hat’s Words
- 喵哈哈的日常选数问题
- 28-反射机制-06-反射机制(获取Class中的方法)
- 无线网
- 智渔课堂官方免费教程十九:Java常用类之String类
- Spring自定义@Qualifier
- [IOS开发]搜索用谓词NSPredicate
- 28-反射机制-05-反射机制(获取Class中的字段)
- I学霸官方免费教程十九:Java常用类之String类
- NOIP2014提高组 寻找道路
- cocosdx里面A*算法的实现#ifndef __CAT_SPRITE_H__ #define __CAT_SPRITE_H__ #include "HelloWorldScene.h" #incl
- android WebView总结
- java要在命令行运行eclipse的项目的方法
- 28-反射机制-04-反射机制(获取Class中的构造函数)
- 源码 、补码、 反码的详解(转载)
- Truck History POJ 1789【Kruscal算法 || Prim】
- IP协议解读(二)