标签:全排列package com.leetcode;

import java.util.ArrayList;

public class Permutation {

public static void main(String[] args) {

ArrayList res = perms2("abc");

System.out.println(res);

}

//法一:

public static ArrayList perms1(String s){

ArrayList res = new ArrayList();

if(s == null)

return null;

if(s.isEmpty()){

res.add("");

return res;

}

for(int i = 0; i < s.length(); i++){

char c = s.charAt(i);

String start = s.substring(0, i);

String end = s.substring(i + 1);

ArrayList words = perms1(start + end);

for(String word : words){

String newStr = c + word;

res.add(newStr);

}

}

return res;

}

//法二:

public static ArrayList perms2(String s){

ArrayList res = new ArrayList();

if(s == null)

return null;

if(s.isEmpty()){

res.add("");

return res;

}

char c = s.charAt(0);

String reminder = s.substring(1);

ArrayList words = perms2(reminder);

for(String word : words){

for(int i = 0; i <= word.length(); i++){

String newStr = insertCharAt(word, c, i);

res.add(newStr);

}

}

return res;

}

public static String insertCharAt(String s, char c, int i){

String start = s.substring(0, i);

String end = s.substring(i);

return start + c + end;

}

}

标签:全排列

原文:http://blog.csdn.net/hjiam2/article/details/38986151

java 字符串排列_Java实现字符串的全排列相关推荐

  1. java 字符串总结_Java中字符串(String)总结

    先说说JDK API: JDK中包含大量的API类库,所谓API(Application Programming Interface,应用程序编程接口,这些功能以类的形式封装). JDK API包含的 ...

  2. java 字符串用法_java中字符串的用法

    1.String中的每个字符都是一个16位的Unicode字符,用Unicode很容易表达丰富的国际化字符集,比如很好的中文支持.甚至Java的标识符都可以用汉字,但是没人会用吧(只在一本清华的< ...

  3. java字符串操作_Java的字符串操作

    Java的字符串操作 小型送分题:Java有字符串(String),StringBuffer(字符串缓存),StringBuilder(字符串建造者?)各种实现,究其原因还是历史上的各种坑. 一.不同 ...

  4. java calendar字符串显示_java关于字符串和日期的代码展示

    StringBuffer是线性安全的,StringBuilder不是线性安全的 字符串的修改: stringBudile与stringBuiler提供了用于修改字符串内容的相关方法 String st ...

  5. java split 数字_java截取字符串,截串,substring和split,分割字母和数字,正则缝隙...

    需求,把"01:大汽车",分成01和大汽车 有两种做法:一是substring Java代码 1 packagetest;2 3 public classsubstringTest ...

  6. java 字符串截取_java截取字符串,截串,substring和split,分割字母和数字,正则缝隙...

    需求,把"01:大汽车",分成01和大汽车 有两种做法:一是substring package test; public class substringTest { public ...

  7. java遍历字符串字符_Java 遍历字符串中所有字符的最快方法

    小编典典 在我的AMDx64 8core和源1.8上,使用'charAt'和字段访问之间没有区别.看来jvm已经过充分优化,可以内联和精简任何'string.charAt(n)'调用. 这完全取决于S ...

  8. java中字符串函数_JAVA中字符串函数subString的用法小结

    string str;str=str.substring(int beginindex);截取掉str从首字母起长度为beginindex的字符串,将剩余字符串赋值给str: str=str.subs ...

  9. java字符串学习_java之字符串学习记录

    java之字符串学习记录 public class StringDemo { public static void main(String[] args) { //静态初始化字符串 String s1 ...

最新文章

  1. 计算机科学技术作文600,生活因科技而精彩作文600字
  2. python学习之路基础篇(第四篇)
  3. 面试Nginx的几个常见问题(
  4. 驱动进化之路:总线设备驱动模型
  5. 用逻辑门制作出加法器
  6. php5.6.30环境报错Call to undefined function ImageCreate() 编译安装 gd库
  7. 【ARM-Linux开发】内核3.x版本之后设备树机制
  8. tensorflow随笔-二分法求解一元方程
  9. 凄怆与悲凉(灾区现场最新照片)
  10. 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)
  11. 编译安装freeswitch-1.4.26
  12. boobooke播布客
  13. 宠物商店电子商务系统er图
  14. 平面弧长极坐标公式的疑问
  15. def序列化器---视图序列化反序列化
  16. pathon和c语言的区别
  17. 绝地求生亚服服务器维护,绝地求生亚服维护时间
  18. git clone时遇到问题:remote: Incorrect username or password ( access token )
  19. 面试百问:如何提高自动化测试脚本稳定性
  20. 奥运了,愿明天会更好

热门文章

  1. 谈谈有什么方法可以快捷实现多场景下的线程安全
  2. 这才是大数据的正确打开方式
  3. 开源一周岁,MindSpore新特性巨量来袭
  4. 什么是全场景AI计算框架MindSpore?
  5. 一统江湖的大前端(5)editorconfig + eslint——你的代码里藏着你的优雅
  6. Kotlin学习笔记19 阶段复习1
  7. Kotlin学习笔记 第二章 类与对象 第十四 十五节 委托 委托属性
  8. Head First设计模式读书笔记二 观察者模式
  9. vb只显示两位小数_【名师课堂】苏教数学五年级上3.1小数的意义
  10. session和cookie_JSP学习