ในปัญหานี้ เราได้รับสตริงและต้องพิมพ์ลำดับย่อยทั้งหมดของสตริง สตริงย่อยเกิดขึ้นจากการลบองค์ประกอบ นอกจากนี้ ลำดับของสตริงไม่ควรเปลี่ยนแปลง
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากันดีกว่า −
Input: string = “xyz” Output: x y xy z xz yz xyz
ในการแก้ปัญหานี้ เราจะค้นหาสตริงย่อยทั้งหมดโดยเริ่มจากการตรึงอักขระตัวแรกของสตริงและค้นหาส่วนย่อยตามลำดับ จากนั้นจึงไปหาอักขระตัวถัดไปในสตริงและลำดับต่อท้าย
ตัวอย่าง
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("The subStrings are :");
printSubString(str, "");
}
} ผลลัพธ์
สตริงย่อยคือ −
z y yz x xz xy xyz w wz wy wyz wx wxz wxy wxyz