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