주어진 문자열을 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 )
보조 공간 : 에)
퀴즈 만들기