Tenint en compte una cadena, trobeu totes les maneres de trencar la cadena donada en forma entre claudàtors. Adjunteu cada substring dins d’un parèntesi.
quina diferència hi ha entre un megabyte i un gigabyte
Exemples:
Input : abc Output: (a)(b)(c) (a)(bc) (ab)(c) (abc) Input : abcd Output : (a)(b)(c)(d) (a)(b)(cd) (a)(bc)(d) (a)(bcd) (ab)(c)(d) (ab)(cd) (abc)(d) (abcd)
Us recomanem fermament que minimitzeu el vostre navegador i proveu -ho primer.
La idea és utilitzar la recursió. Mantenim dos paràmetres: l’índex del següent caràcter que s’ha de processar i la cadena de sortida fins ara. Comencem des de l’índex de caràcter següent que es processi la substància append formada per cadena no processada a la cadena de sortida i recursi a la cadena restant fins que processem tota la cadena. Utilitzem std :: substr per formar la cadena de sortida. Substr (POS N) Retorna una substància de longitud N que comença a la posició POS de la cadena de corrent.
excepció llança java
A sota del diagrama es mostra l'arbre de recursió per a la cadena d'entrada 'ABC'. Cada node del diagrama mostra cadena processada (marcada per verd) i cadena no processada (marcada per vermell).

A continuació es mostra la implementació de la idea anterior
connectar-se a una base de dades javaC++
// C++ Program to find all combinations of Non- // overlapping substrings formed from given // string #include using namespace std; // find all combinations of non-overlapping // substrings formed by input string str // index – index of the next character to // be processed // out - output string so far void findCombinations(string str int index string out) { if (index == str.length()) cout << out << endl; for (int i = index; i < str.length(); i++) { // append substring formed by str[index // i] to output string findCombinations( str i + 1 out + '(' + str.substr(index i + 1 - index) + ')'); } } // Driver Code int main() { // input string string str = 'abcd'; findCombinations(str 0 ''); return 0; }
Java // Java program to find all combinations of Non- // overlapping substrings formed from given // string class GFG { // find all combinations of non-overlapping // substrings formed by input string str static void findCombinations(String str int index String out) { if (index == str.length()) System.out.println(out); for (int i = index; i < str.length(); i++) // append substring formed by str[index // i] to output string findCombinations(str i + 1 out + '(' + str.substring(index i+1) + ')' ); } // Driver Code public static void main (String[] args) { // input string String str = 'abcd'; findCombinations(str 0 ''); } } // Contributed by Pramod Kumar
Python3 # Python3 Program to find all combinations of Non- # overlapping substrings formed from given # string # find all combinations of non-overlapping # substrings formed by input string str # index – index of the next character to # be processed # out - output string so far def findCombinations(string index out): if index == len(string): print(out) for i in range(index len(string) 1): # append substring formed by str[index # i] to output string findCombinations(string i + 1 out + '(' + string[index:i + 1] + ')') # Driver Code if __name__ == '__main__': # input string string = 'abcd' findCombinations(string 0 '') # This code is contributed by # sanjeev2552
C# // C# program to find all combinations // of Non-overlapping substrings formed // from given string using System; class GFG { // find all combinations of non-overlapping // substrings formed by input string str public static void findCombinations(string str int index string @out) { if (index == str.Length) { Console.WriteLine(@out); } for (int i = index; i < str.Length; i++) { // append substring formed by // str[index i] to output string findCombinations( str i + 1 @out + '(' + str.Substring(index (i + 1) - index) + ')'); } } // Driver Code public static void Main(string[] args) { // input string string str = 'abcd'; findCombinations(str 0 ''); } } // This code is contributed by Shrikant13
JavaScript // Javascript program for the above approach // find all combinations of non-overlapping // substrings formed by input string str // index – index of the next character to // be processed // out - output string so far function findCombinations(string index out) { if (index == string.length) { console.log(out); } for (let i = index; i < string.length; i++) { // append substring formed by str[index // i] to output string findCombinations(string i + 1 out + '(' + string.substring(index i + 1) + ')'); } } // Driver Code const string = 'abcd'; findCombinations(string 0 ''); // contributed by adityasharmadev01
Producció
(a)(b)(c)(d) (a)(b)(cd) (a)(bc)(d) (a)(bcd) (ab)(c)(d) (ab)(cd) (abc)(d) (abcd)
Complexitat del temps: o (n2Que)
Espai auxiliar: o (n2Que)