给定一个字符串,任务是检查是否可以将其拆分为4个字符串,使每个字符串都不是空的,并且彼此不同。
null
例如:
Input : str[] = "geeksforgeeks"Output : Yes"geeks", "for", "gee", "ks" are four distinct strings that can form fromgiven string.Input : str[] = "aaabb"Output : No
观察绳子的长度是否大于或等于10,然后每次都可以分成四部分。假设长度为10,则可以制作长度为1、2、3、4的字符串。 对于长度小于10的字符串,我们可以使用蛮力,即迭代所有可能的拆分字符串的方法,并检查每个方法。
If length is more than 10 return trueElse (If length is less than 10) Use Brute Force method to check if we can break it in four distinct strings.
下面是上述想法的实现。
C++
// C++ program to check if we can break a string // into four distinct strings. #include<bits/stdc++.h> 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.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 (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 |
Python3
# 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> |
输出:
No
本文由 阿努伊·乔汉 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END