Cho chuỗi, in tất cả dãy con. Dãy con tạo bằng cách xóa ký tự, giữ nguyên thứ tự.
Input: "xyz" Output: x y xy z xz yz xyz
Giải pháp: Đệ quy, mỗi bước quyết định lấy hoặc bỏ ký tự hiện tại.
Chương trình minh họa (Java)
public class Main {
public static void printSubString(String sub, String subSeq){
if (sub.length() == 0) {
System.out.print(subSeq + " ");
return;
}
char ch = sub.charAt(0);
String ros = sub.substring(1);
printSubString(ros, subSeq);
printSubString(ros, subSeq + ch);
}
public static void main(String[] args){
String str = "wxyz";
System.out.println("Các dãy con là :");
printSubString(str, "");
}
}
Kết quả
z y yz x xz xy xyz w wz wy wyz wx wxz wxy wxyz