老早以前刚学程序的时候碰到了这么个问题,当时没想出来,今天突然想起来了这么个问题于是写了下,也算留个纪念吧

    public static String itr;

     public static void main(String[] args) {
String s = "abcd";
printGroup(s);
} public static void printGroup(String in){
itr = in;
for (int i = 0; i < itr.length() ; i++) {
String c = itr.charAt(i)+"";
String low = itr.substring(0,i)+itr.substring(i+1);
print(c,low);
System.out.println();
}
}
public static String cutStr(String cut){
char[] sa = itr.toCharArray();
char[] ca = cut.toCharArray();
int k = sa.length-ca.length;
char[] str = new char[k];
int i = 0;
A:for (char s : sa) {
for (char c : ca) {
if(s==c){
continue A;
}
}
str[i++] = s;
if(i==k){
break ;
}
}
return new String(str);
} private static void print(String c,String str){
for (int i = 0; i < str.length(); i++) {
String s = c + str.charAt(i);
System.out.print(s+" ");
print(s,cutStr(s));
}
}

如果输入为abcd,结果则为

ab abc abcd abd abdc ac acb acbd acd acdb ad adb adbc adc adcb
ba bac bacd bad badc bc bca bcad bcd bcda bd bda bdac bdc bdca
ca cab cabd cad cadb cb cba cbad cbd cbda cd cda cdab cdb cdba
da dab dabc dac dacb db dba dbac dbc dbca dc dca dcab dcb dcba

列举出给定数量的字符的所有组成情况-java实现的更多相关文章

  1. 给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合 print-all-combinations-of-given-length

    // 给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合 /* Input: set[] = {'a', 'b'}, k = 3 Output: aaa aab aba ...

  2. Expm 10_2 实现Ford-Fulkerson算法,求出给定图中从源点s到汇点t的最大流,并输出最小割。

    package org.xiu68.exp.exp10; import java.util.ArrayDeque; import java.util.ArrayList; import java.ut ...

  3. 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。

    题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输 ...

  4. SQL用先进先出存储过程求出库数量

    create table t( id ,), name ),--商品名称 j int, --入库数量 c int, --出库数量 jdate datetime --入库时间 ) ,,'2007-12- ...

  5. 在Linux或者Unix下打开,每一行都会出多出^M这样的字符

    Windows上写好的文件,在Linux或者Unix下打开,每一行都会出多出^M这样的字符,这是因为Windows与*nix的换行符不同所致,我们看看文件格式有什么不同. 在Linux下查看文件格式: ...

  6. CSS之background-image:在一个元素中设置给定数量的背景图片

    众所周知,可以通过设置background-repeat的值来改变背景图片的重复次数.但有一个问题,background-repeat的值不是让图片只有1个,就是让图片铺满.如果只想设置给定数量的图片 ...

  7. Leetcode33--->Search in Rotated Sorted Array(在旋转数组中找出给定的target值的位置)

    题目: 给定一个旋转数组,但是你不知道旋转位置,在旋转数组中找出给定target值出现的位置:你可以假设在数组中没有重复值出现 举例: (i.e., 0 1 2 4 5 6 7 might becom ...

  8. 9.9递归和动态规划(八)——给定数量不限的硬币,币值为25分,10分,5分,1分,计算n分有几种表示法

    /**  * 功能:给定数量不限的硬币.币值为25分,10分.5分.1分,计算n分有几种表示法. */ public static int makeChange(int n){ return make ...

  9. 剑指offer27:按字典序打印出该字符串中字符的所有排列

    1 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: ...

随机推荐

  1. 部署DVWA时的一些问题和解决办法(二)

    DVWA reCAPTCHA key: Missing解决方法 编辑 dvwa/config/config.inc.php这个配置文件 $_DVWA[ 'recaptcha_public_key' ] ...

  2. [原]eclipse中spring配置文件的自动提示和命名空间的添加

    在用spring或者springmvc框架进行开发时,编辑applicationcontext.xml等配置文件是必不可少的,在eclipse中打开applicationcontext.xml通常是这 ...

  3. oracle imp exp 导入导出

    一.exp导出 exp myuser/mypwd@orcl file=D:\sql-bak\myuser.dmp log=D:\sql-bak\myuser.log exp 用户/密码@实例名 fil ...

  4. Python学习之函数篇

    python查看对象,函数帮助文档:.__doc__,例:str.split.__doc__ 查看详细对象,函数文档:help(),例:help(str.split) 函数参数可设置默认值 如果不能提 ...

  5. MindManager安装、激活

    MindManager安装 MindManager激活

  6. (原创)SoapUI学习(2)- POST请求

    1.新建Project,右键Projects->New REST Project,可以不填直接点击OK,之后通过rename重命名.(如果这里添加URL,则直接达到第三步的图) 2.右键新建的工 ...

  7. 操作word

    package com.gwt.flow.task; import java.io.File; import java.io.FileInputStream; import java.io.FileN ...

  8. 201771010135 杨蓉庆《面对对象程序设计(java)》第十七周学习总结

    1.实验目的与要求 (1) 掌握线程同步的概念及实现技术: (2) 线程综合编程练习 一.理论知识 ⚫ 线程同步 (1)多线程并发运行不确定性问题解决方案:引入线 程同步机制,使得另一线程要使用该方法 ...

  9. Mybatis 结果集映射

    结果映射(resultMap) constructor - 用于在实例化类时,注入结果到构造方法中(一般不用) idArg - ID 参数:标记出作为 ID 的结果可以帮助提高整体性能 arg - 将 ...

  10. qq音乐解析API

    文档:www.tjit.net 开放的接口:api88.net 个人代码: input2(event){ //将字符转化为encodeURL编码,才能进行正确请求,这是这个接口要求的 //js自带的转 ...