이 문제에서 문자열이 주어지고 문자열의 모든 하위 시퀀스를 인쇄해야 합니다. 부분 문자열은 요소를 삭제하여 형성됩니다. 또한 문자열의 순서를 변경해서는 안 됩니다.
문제를 더 잘 이해하기 위해 예를 들어 보겠습니다 -
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