A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z13561291 中级黑马   /  2015-11-15 01:14  /  412 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /**
  2. * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:
  3. * 原始字符串是"abc",打印得到下列所有组合情况:
  4. * "a" "b" "c"
  5. * "ab" "bc" "ca" "ba" "cb" "ac"
  6. * "abc" "acb" "bac" "bca" "cab" "cba"
  7. * */
  8. public class Test7 {
  9.        
  10.         public static String str = "abc";                             //定义一个字符串为"abc"
  11.             public static void main(String[] args) {  
  12.                       show(0, new String());                              //调用show方法
  13.             }
  14.                          // 递归
  15.                         public static void show(int x, String y) {        //定义show方法(角标,对象)
  16.                             if (x < str.length()) {                                           //判断x小于abc的长度时
  17.                                 for (int i = 0; i < str.length(); i++) {  // 从角标0开始循环(也就是'a')
  18.                                    if (!(y.contains(str.substring(i, i + 1)))) { //判断当前字符串中没有重复字符时
  19.                                System.out.println(y + str.substring(i, i + 1)); //输出(y+截取从i到i+1中的字符串)
  20.                           show(x + 1, new String(y + str.substring(i, i + 1))); //继续判断后面字符并输出
  21.                                     }
  22.                                 }
  23.                             }
  24.                         }
  25.             }  

复制代码


1 个回复

倒序浏览
学习下,学习递归
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马