logo

Izdrukājiet visus veidus, kā salauzt virkni iekavās formā

Ņemot vērā virkni, atrodiet visus veidus, kā sadalīt doto virkni kronšteina formā. Pievienojiet katru apakšvirkni iekavās.

cpp vienāds

Piemēri: 



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)

Mēs ļoti iesakām samazināt savu pārlūkprogrammu un vispirms izmēģināt to pats.

Ideja ir izmantot rekursiju. Mēs uzturam divus parametrus - nākamās apstrādājamās rakstzīmes indeksu un līdz šim izvades virkni. Mēs sākam no nākamās rakstzīmes indeksa, kas jāapstrādā, pievienojiet apakšvirkni, ko neapstrādāta virkne izveido izvades virknei un atkārtoti atlikušajā virknē, līdz mēs apstrādājam visu virkni. Izvades virknes veidošanai mēs izmantojam STD :: Substr. Substr (Pos N) atgriež garuma N apakšvirsmu, kas sākas ar pašreizējās virknes pozīciju.

Zemāk diagrammā parādīts ievades virknes “ABC” rekursijas koks. Katrā diagrammas mezglā ir redzama apstrādāta virkne (apzīmēta ar zaļu) un nepārstrādāta virkne (apzīmēta ar sarkanu).



lūzums' title=

math izlases java

Zemāk ir iepriekšminētās idejas ieviešana

C++
// 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 

Izvade
(a)(b)(c)(d) (a)(b)(cd) (a)(bc)(d) (a)(bcd) (ab)(c)(d) (ab)(cd) (abc)(d) (abcd)

Laika sarežģītība: O (nRādītājs)
Palīg telpa: O (nRādītājs)



saraksts vs iestatīts java