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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qmlovewhr 中级黑马   /  2014-9-28 23:08  /  822 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  改题是:求一个字符串的所有子串,例如:字符串“abc"   ,输出为 'a' 'b' 'c' 'ab' 'ac' 'bc' 'abc' 'acb' bca' bac'  'cab'  'cba'
  不知有没有可扩展的方法?

3 个回复

倒序浏览
直接递归就可以了哈!
  1. package com.itheima.bbs;


  2. public class StringTest {   
  3.        
  4.     public static String str = "abc";
  5.    
  6.     public static void main(String[] args) {
  7.                                   
  8.         show(0, new String());
  9.             
  10.     }
  11.    
  12.         // 递归
  13.    
  14.     public static void show(int current_recur, String temp) {
  15.            
  16.         if (current_recur < str.length()) {
  17.                
  18.             for (int i = 0; i < str.length(); i++) {
  19.                    
  20.                 if (!(temp.contains(str.substring(i, i + 1)))) {
  21.                        
  22.                     System.out.print("'"+temp + str.substring(i, i + 1)+"'" + " ");
  23.                     
  24.                     show(current_recur + 1,
  25.                             new String(temp + str.substring(i, i + 1)));
  26.                 }
  27.             }
  28.         }
  29.     }
  30.    
  31.    
  32. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1 赞一个!

查看全部评分

回复 举报
'acb' bca' bac'  'cab'  'cba'不是它字串呀,
回复 举报
听老师说这道题没几人能做出来哈,看来黑马的基础入学题质量是越来越高呀
回复 举报
您需要登录后才可以回帖 登录 | 加入黑马