w3resource
Java Programming Exercies

Java String Exercises: Find all interleavings of specified strings

Java String: Exercise-33 with Solution

Write a Java program to find all interleavings of given strings.

Sample Solution:

Java Code:

import java.util.HashSet;
import java.util.Set;

class Main {
 public static void allInterleavings(String res, String P, String Q, Set < String > out) {
  if (P.length() == 0 && Q.length() == 0) {
   out.add(res);
   return;
  }
  if (P.length() > 0) {
   allInterleavings(res + P.charAt(0), P.substring(1), Q, out);
  }
  if (Q.length() > 0) {
   allInterleavings(res + Q.charAt(0), P, Q.substring(1), out);
  }
 }

 public static void main(String[] args) {
  String P = "WX";
  String Q = "YZ";
  System.out.println("The given strings are: " + P + "  " + Q);
  System.out.println("The interleavings strings are: ");
  Set < String > out = new HashSet < > ();
  allInterleavings("", P, Q, out);

  out.stream().forEach(System.out::println);
 }
}

Sample Output:

The given strings are: WX  YZ
The interleavings strings are: 
YWZX
WYZX
YWXZ
WXYZ
YZWX
WYXZ

Flowchart:

Flowchart: Java String Exercises - Find all interleavings of specified strings

Java Code Editor:

Improve this sample solution and post your code through Disqus

Previous: Write a Java program to find longest Palindromic Substring within a string.
Next: Write a Java program to find the second most frequent character in a given string.

What is the difficulty level of this exercise?