首页 > 学院 > 开发设计 > 正文

JAVA----编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符

2019-11-14 15:35:00
字体:
来源:转载
供稿:网友
package com.pb.demo.packclass.demo1;import java.util.HashSet;/** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符例如:原始字符串是"abc",打印得到下列所有组合情况"a" "b" "c" "ab" "bc" "ca" "ba" "cb" "ac""abc" "acb" "bac" "bca" "cab" "cba" * @author Denny * 思路: * 1.截取字符串,每次载取一个 * 2.把截取到的一个做的前缀,添加到集合中 * 3.和剩下的组合 * 4.长度为1时,用前缀和剩下的组合添加到集合 * 5.使用递归 * */public class Demo9 {    static HashSet<String> set=new HashSet<String>();    public static void main(String[] args) {        String s="abc";        getString(s,"");                System.out.PRintln(set);        System.out.println(set.size());    }    public static void getString(String s,String pre){        if(s.length()==1){            set.add(pre+s);            return;        }else{            for (int i = 0; i < s.length(); i++) {                StringBuilder sb=new StringBuilder(s);                String str=pre+s.substring(i, i+1);                set.add(str);                getString(sb.deleteCharAt(i).toString(),str);            }        }    }}

结果:

[a, ab, acb, bc, bca, ac, b, abc, c, cba, bac, cab, ca, ba, cb]
15


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表