Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 ArrayList를 사용하여 문자열의 모든 하위 시퀀스 인쇄


이 문제에서 문자열이 주어지고 문자열의 모든 하위 시퀀스를 인쇄해야 합니다. 부분 문자열은 요소를 삭제하여 형성됩니다. 또한 문자열의 순서를 변경해서는 안 됩니다.

문제를 더 잘 이해하기 위해 예를 들어 보겠습니다 -

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