题目描述:求一个序列的子序列
比如 :求字符串abc的子序列为
空
c
b
bc
a
ac
ab
abc
思路分析:对序列每一个字符都有取(1)不取(0)两种可能性。
将字符串abc转换为一个字符数组char[] str,那么a就可以用str[0]表示,b可以表示为str[1],c表示为str[2].
str[0],str[1].str[2]就都有1,0两种取法
package com.cn.java.niuke;
import java.io.BufferedInputStream;
import java.util.Scanner;
public class test {
public static void printAllSub(char[] str, int i, String res) {
if (i == str.length) {
System.out.println(res);
return ;
} else {
printAllSub(str, i + 1, res); // 不要下标为i+1的字符
printAllSub(str, i + 1, res+str[i]); // 要第i+1个字符
}
}
public static void main(String[] args) {
Scanner in = new Scanner(new BufferedInputStream(System.in));
String str = in.next();
printAllSub(str.toCharArray(), 0, "");
in.close();
}
}