주어진 문자열을 4개의 개별 문자열로 분할할 수 있는지 확인

주어진 문자열을 4개의 개별 문자열로 분할할 수 있는지 확인
GfG Practice에서 사용해 보세요.

문자열이 주어지면 작업은 각 문자열이 비어 있지 않고 다른 문자열과 다르도록 이를 4개의 문자열로 분할할 수 있는지 확인하는 것입니다.

예:   

입력 : str[] = '긱스포긱스'
산출 : 예
'geeks' 'for' 'gee' 'ks'는 주어진 문자열에서 형성될 수 있는 4개의 개별 문자열입니다.

입력 : str[] = 'aaabb'
산출 : 아니요

문자열의 길이가 10보다 크거나 같으면 매번 네 부분으로 나눌 수 있습니다. 길이가 10이라고 가정하면 길이가 1 2 3 4인 문자열을 만들 수 있습니다. 
길이가 10보다 작은 문자열의 경우 무차별 대입을 사용할 수 있습니다. 즉, 문자열을 분할하는 가능한 모든 방법을 반복하고 각각을 확인할 수 있습니다. 

만약에 길이가 10 이상입니다.
true를 반환
또 다른 (길이가 10보다 작은 경우)
Brute Force 방법을 사용하여 4개의 개별 문자열로 나눌 수 있는지 확인합니다.

아래는 위의 아이디어를 구현한 것입니다. 

C++
   // C++ program to check if we can break a string   // into four distinct strings.   #include       using     namespace     std  ;   // Return if the given string can be split or not.   bool     check  (  string     s  )   {      // We can always break a string of size 10 or      // more into four distinct strings.      if     (  s  .  size  ()     >=     10  )      return     true  ;      // Brute Force      for     (  int     i     =  1  ;     i      <     s  .  size  ();     i  ++  )      {      for     (  int     j     =     i     +     1  ;     j      <     s  .  size  ();     j  ++  )      {      for     (  int     k     =     j     +     1  ;     k      <     s  .  size  ();     k  ++  )      {      // Making 4 string from the given string      string     s1     =     s  .  substr  (  0       i  );      string     s2     =     s  .  substr  (  i       j     -     i  );      string     s3     =     s  .  substr  (  j       k     -     j  );      string     s4     =     s  .  substr  (  k       s  .  size  ()     -     k  );      // Checking if they are distinct or not.      if     (  s1     !=     s2     &&     s1     !=     s3     &&     s1     !=     s4     &&      s2     !=     s3     &&     s2     !=     s4     &&     s3     !=     s4  )      return     true  ;      }      }      }      return     false  ;   }   // Driven Program   int     main  ()   {      string     str     =     'aaabb'  ;      (  check  (  str  ))  ?     (  cout      < <     'Yes'      < <     endl  )  :      (  cout      < <     'No'      < <     endl  );      return     0  ;   }   
Java
   // Java program to check if we can break a string    // into four distinct strings.    class   GFG   {      // Return true if both strings are equal      public     static     boolean     strcheck  (  String     s1       String     s2  )         {      if     (  s1     !=     s2  )      return     false  ;      return     true  ;      }      // Return if the given string can be split or not.      public     static     boolean     check  (  String     s  )         {      if     (  s  .  length  ()     >=     10  )      return     true  ;      // Brute Force      for     (  int     i     =     1  ;     i      <     s  .  length  ();     i  ++  )         {      for     (  int     j     =     i     +     1  ;     j      <     s  .  length  ();     j  ++  )         {      for     (  int     k     =     j     +     1  ;     k      <     s  .  length  ();     k  ++  )         {          // Making 4 string from the given string      String     s1     =     ''       s2     =     ''       s3     =     ''       s4     =     ''  ;      try      {      s1     =     s  .  substring  (  0       i  );      s2     =     s  .  substring  (  i       j     -     i  );      s3     =     s  .  substring  (  j       k     -     j  );      s4     =     s  .  substring  (  k       s  .  length  ()     -     k  );      }         catch     (  StringIndexOutOfBoundsException     e  )     {      }      // Checking if they are distinct or not.      if     (  strcheck  (  s1       s2  )     &&     strcheck  (  s1       s3  )     &&         strcheck  (  s1       s4  )     &&     strcheck  (  s2       s3  )     &&         strcheck  (  s2       s4  )     &&     strcheck  (  s3       s4  ))      return     true  ;      }      }      }      return     false  ;      }      // Driver code      public     static     void     main  (  String  []     args  )      {      String     str     =     'aaabb'  ;      if     (  check  (  str  ))      System  .  out  .  println  (  'Yes'  );      else      System  .  out  .  println  (  'No'  );      }   }   // This code is contributed by   // sanjeev2552   
Python
   # Python3 program to check if we can    # break a into four distinct strings.    # Return if the given string can be    # split or not.    def   check  (  s  ):   # We can always break a of size 10 or    # more into four distinct strings.    if   (  len  (  s  )   >=   10  ):   return   True   # Brute Force    for   i   in   range  (  1     len  (  s  )):   for   j   in   range  (  i   +   1     len  (  s  )):   for   k   in   range  (  j   +   1     len  (  s  )):   # Making 4 from the given    s1   =   s  [  0  :  i  ]   s2   =   s  [  i  :  j   -   i  ]   s3   =   s  [  j  :   k   -   j  ]   s4   =   s  [  k  :   len  (  s  )   -   k  ]   # Checking if they are distinct or not.    if   (  s1   !=   s2   and   s1   !=   s3   and   s1   !=   s4   and   s2   !=   s3   and   s2   !=   s4   and   s3   !=   s4  ):   return   True   return   False   # Driver Code    if   __name__   ==   '__main__'  :   str   =   'aaabb'   print  (  'Yes'  )   if  (  check  (  str  ))   else   print  (  'NO'  )   # This code is contributed   # by SHUBHAMSINGH10   
C#
   // C# program to check if we can break a string    // into four distinct strings.    using     System  ;       class     GFG   {      // Return true if both strings are equal      public     static     Boolean     strcheck  (  String     s1        String     s2  )         {      if     (  s1  .  CompareTo  (  s2  )     !=     0  )      return     false  ;      return     true  ;      }      // Return if the given string      // can be split or not.      public     static     Boolean     check  (  String     s  )         {      if     (  s  .  Length     >=     10  )      return     true  ;      // Brute Force      for     (  int     i     =     1  ;     i      <     s  .  Length  ;     i  ++  )         {      for     (  int     j     =     i     +     1  ;     j      <     s  .  Length  ;     j  ++  )         {      for     (  int     k     =     j     +     1  ;     k      <     s  .  Length  ;     k  ++  )         {          // Making 4 string from the given string      String     s1     =     ''       s2     =     ''           s3     =     ''       s4     =     ''  ;      try      {      s1     =     s  .  Substring  (  0       i  );      s2     =     s  .  Substring  (  i       j     -     i  );      s3     =     s  .  Substring  (  j       k     -     j  );      s4     =     s  .  Substring  (  k       s  .  Length     -     k  );      }         catch     (  Exception     e  )     {      }      // Checking if they are distinct or not.      if     (  strcheck  (  s1       s2  )     &&     strcheck  (  s1       s3  )     &&         strcheck  (  s1       s4  )     &&     strcheck  (  s2       s3  )     &&         strcheck  (  s2       s4  )     &&     strcheck  (  s3       s4  ))      return     true  ;      }      }      }      return     false  ;      }      // Driver code      public     static     void     Main  (  String  []     args  )      {      String     str     =     'aaabb'  ;      if     (  check  (  str  ))      Console  .  WriteLine  (  'Yes'  );      else      Console  .  WriteLine  (  'No'  );      }   }   // This code is contributed by Princi Singh   
JavaScript
    <  script  >      // JavaScript program to check if we can break a string       // into four distinct strings.           // Return true if both strings are equal      function     strcheck  (  s1       s2  )         {      if     (  s1  .  localeCompare  (  s2  )     !=     0  )      return     false  ;      return     true  ;      }          // Return if the given string can be split or not.      function     check  (  s  )         {      if     (  s  .  length     >=     10  )      return     true  ;          // Brute Force      for     (  let     i     =     1  ;     i      <     s  .  length  ;     i  ++  )         {      for     (  let     j     =     i     +     1  ;     j      <     s  .  length  ;     j  ++  )         {      for     (  let     k     =     j     +     1  ;     k      <     s  .  length  ;     k  ++  )         {          // Making 4 string from the given string      let     s1     =     ''       s2     =     ''       s3     =     ''       s4     =     ''  ;      s1     =     s  .  substring  (  0       i  );      s2     =     s  .  substring  (  i       i     +     j     -     i  );      s3     =     s  .  substring  (  j       j     +     k     -     j  );      s4     =     s  .  substring  (  k       k     +     s  .  length     -     k  );          // Checking if they are distinct or not.      if     (  strcheck  (  s1       s2  )     &&     strcheck  (  s1       s3  )     &&         strcheck  (  s1       s4  )     &&     strcheck  (  s2       s3  )     &&         strcheck  (  s2       s4  )     &&     strcheck  (  s3       s4  ))      return     true  ;      }      }      }          return     false  ;      }          let     str     =     'aaabb'  ;      if     (  check  (  str  ))      document  .  write  (  'Yes'  );      else      document  .  write  (  'No'  );        <  /script>   
PHP
      // Return true if the given string can be split into four distinct strings   function   check  (  $s  )   {   // We can always break a string of size 10 or more into four distinct strings   if   (  strlen  (  $s  )   >=   10  )   {   return   true  ;   }   // Brute Force   for   (  $i   =   1  ;   $i    <   strlen  (  $s  );   $i  ++  )   {   for   (  $j   =   $i   +   1  ;   $j    <   strlen  (  $s  );   $j  ++  )   {   for   (  $k   =   $j   +   1  ;   $k    <   strlen  (  $s  );   $k  ++  )   {   // Making 4 from the given string   $s1   =   substr  (  $s     0     $i  );   $s2   =   substr  (  $s     $i     $j   -   $i  );   $s3   =   substr  (  $s     $j     $k   -   $j  );   $s4   =   substr  (  $s     $k     strlen  (  $s  )   -   $k  );   // Checking if they are distinct or not   if   (  $s1   !=   $s2   &&   $s1   !=   $s3   &&   $s1   !=   $s4   &&   $s2   !=   $s3   &&   $s2   !=   $s4   &&   $s3   !=   $s4  )   {   return   true  ;   }   }   }   }   return   false  ;   }   // Driver Code   $str   =   'aaabb'  ;   echo   (  check  (  $str  )   ?   'Yes'   :   'NO'  );   ?>   

산출
No 

시간 복잡도 : 에 3
보조 공간 : 에)

 

퀴즈 만들기