暴力递归-打印字符串全部子序列
题目:打印一个字符串的全部子序列,包括空字符串
solution:
对于字符串的每一个元素,我们都可以选择要或者不要:
代码:
package Algorithms.ViolenceRecursive; public class PrintAllSubsquences { public static void printAllSubsquence(String str) { char[] chs = str.toCharArray(); process(chs, 0); } //当前来到i位置,要和不要,走两条路 //res之前的选择,所形成的结果是str public static void process(char[] str, int i) { if (i == str.length) { System.out.println(String.valueOf(str)); return; } process(str, i + 1);//要当前字符的路 char tmp = str[i]; str[i] = 0; process(str, i + 1);//不要当前字符的路 str[i] = tmp; } public static void main(String[] args) { String test = "abc"; printAllSubsquence(test); } } /** * abc * ab * a c * a * bc * b * c */