`

java-输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc

 
阅读更多
import java.util.ArrayList;
import java.util.List;

public class Combination {

	public static void main(String[] args) {

		char[] a = { 'a', 'b', 'c' };
		List<Character> list = new ArrayList<Character>();
		for (int i = 1, len = a.length; i <= len; i++) {
			combine(a, 0, i, list);
		}
	}
        /*
	 * we can also use Stack like this:
	    stack.push(a[begin]);
		combination(a,begin+1,number-1,stack);
		stack.pop();
		combination(a,begin+1,number,stack);
	 */
	public static void combine(char[] a, int begin, int resultLength,List<Character> list) {
		
		if (resultLength == 0) {
			System.out.println(list.toString());
			return;
		}
		if (begin == a.length){
			return;
		}
		
		list.add(a[begin]);
		combine(a, begin + 1, resultLength - 1, list);
		list.remove((Character) a[begin]);
		combine(a, begin + 1, resultLength, list);
	}
}



the idea is fromhttp://zhedahht.blog.163.com/blog/static/2541117420114172812217/
3
0
分享到:
评论

相关推荐

    java编写一个截取字符串的函数,输入为一个字符串和字节数.docx

    Java 字符串截取函数 ...本例中,我们实现了一个 Java 字符串截取函数,该函数可以截取指定字节的字符串,并保证汉字不被截半个。该函数使用 `substring` 方法来实现字符串截取,并且可以应用于各种字符串处理场景。

    java 分解字符串

    在Java编程语言中,分解字符串是一项常见的任务,它涉及到对字符串进行分析,将字符串分割成多个子字符串。这个过程通常被称为字符串分割。在Java中,我们主要使用`String`类提供的`split()`方法来实现这一功能。...

    java判断一个字符串是否对称

    自己编的java判断一个字符串是否对称的,忘指导。判断一个字符串是否是对称字符串(方法改进) (一个一个比较) 例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串

    Java检索字符串中是否存在某字符

    如果我们要统计子串在主字符串中出现的次数,可以在找到一次匹配后,将主字符串的指针移动到匹配结束的位置加上next function的值,这样可以跳过已匹配的部分,继续寻找下一个匹配。 从提供的文件名来看,可能包含...

    动态规划算法--1-26对应a-z字符串转换

    动态规划算法:从1到26分别对应a-z的每一个字母,输入一串数字的字符串,转换为字母,输出所有可能的字母序列。如123-&gt;abc、lc、aw 本资源是按照二叉树的思想解决该问题。从字符串的头部开始,每次可以取一个或者两...

    java代码-列出所有字符串中大小写的组合

    在Java编程语言中,列出一个字符串的所有大小写组合是一个常见的任务,特别是在进行字符串处理或算法练习时。这个任务可以通过递归或循环等方法实现。以下是一个详细的解释: 首先,我们需要理解问题的核心:对于一...

    字符串分隔

    输入:首先输入数字n,表示要输入多少个字符串。连续输入字符串(输出次数为N,字符串长度小于100)。 输出:按长度为8拆分每个字符串后输出到新的字符串数组,长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。...

    java中的字符串处理

    这意味着如果尝试修改字符串的内容,实际上是在创建一个新的`String`对象而非修改原有对象。这种不可变性带来了几个重要的优点: - 提高了多线程环境下的安全性,因为不可变对象天然具有线程安全特性。 - 提升了...

    程序员面试题精选-输出一个字符串的所有子串

    在字符串 "abc" 中,它的每一个字符(如 "a", "b", "c")以及由连续字符组成的序列(如 "ab", "bc", "abc")都被称为该字符串的子串。题目要求按照特定顺序输出所有子串,即从单个字符开始,逐次增加字符直到整个...

    Abc.rar_ABC_ABC JAVA_字符串倒序

    本示例通过"Abc.rar"压缩包中的"Abc.java"文件展示了如何实现一个简单的字符串倒序功能。这个任务看似简单,但却是理解和掌握字符串操作的重要步骤。 首先,让我们详细解释一下这个任务。"ABC JAVA_字符串倒序"的...

    有两个字符串A,B,判断B是不是A的子串

    在字符串理论中,如果一个字符串可以通过在另一个字符串中连续提取字符形成,那么这个字符串就是另一字符串的子串。例如,字符串 "abc" 是 "abcdefg" 的子串,但 "abx" 不是,因为 "x" 在 "abcdefg" 中不存在。 ...

    java 创建字符串类

    当创建一个`String`对象时,如果常量池中已经存在相同内容的字符串,那么将返回该字符串的引用,而不是创建新的对象。 4. **字符串比较**: - `equals()`方法:用于比较两个字符串的内容是否相等,忽略大小写可以...

    理解java中的字符串的内存分配

    如果不存在,则会在字符串常量池中创建一个新的 `"abc"` 字符串。之后,将在堆内存中创建一个新的字符串对象 `A`,并使用 `s1` 引用指向这个对象。 再看另一个示例: ```java String s2 = "abc"; ``` 这里,由于 ...

    java字符串操作大全

    此方法用于从字符串中获取多个字符并将其存放到一个字符数组中。 ```java String s = "this is a demo of the getChars method."; char buf[] = new char[20]; s.getChars(10, 14, buf, 0); ``` 这段代码中,`...

    Java实现abc字符串排列组合

    本文将详细介绍Java实现abc字符串的排列组合,主要包括可重复排列、全排列和组合三个部分。 可重复排列 在Java中,可以使用递归来实现abc字符串的可重复排列。可重复排列是指从abc三个字符中选择字符,组成长度为3...

    Substring字符串截取-kaic

    在编程领域,特别是涉及到文本处理的时候,`substring`方法是一个非常常见且重要的工具,它用于从一个字符串中截取部分子字符串。这个方法在Java、JavaScript等许多编程语言中都有提供,我们主要以Java为例来详细...

    Java实现字符数组全排列的方法

    它创建了一个包含 'a', 'b', 'c' 的字符数组,并调用 `permutation` 进行全排列,最后输出所有可能的排列组合。 运行 `testPermutation`,你会看到如下输出: ``` abc acb bac bca cab cba ``` 这正是 'a', 'b', 'c...

    判断一个字符串或字符串中的一个字符是否为数字类型

    在编程领域,判断一个字符串或字符串中的一个字符是否为数字类型是常见的操作,尤其是在处理用户输入、数据分析或者格式验证时。下面将详细讲解几种不同语言中实现这一功能的方法,以及如何确保判断的安全性和效率。...

    Java中将一个字符串拆分为多个子字符串.docx

    以下是一个简单的Java程序,用于将字符串拆分为所有可能的子字符串(不包括空字符串): ```java import java.util.ArrayList; class SubstringsOfAString { // 函数用于将字符串拆分为所有子字符串并将其作为...

Global site tag (gtag.js) - Google Analytics