Java: Check whether two strings are interleaving of a specified string
Write a Java program to check whether two strings interlive of a given string. Assuming that unique characters are present in both strings.
Visual Presentation:
Sample Solution:
Java Code:
// Import necessary Java utilities.
import java.util.*;
// Define a class named Main.
public class Main {
// The main method to start the execution of the program.
public static void main(String args[]) {
// Define three strings.
String str1 = "MNO";
String str2 = "PQ";
String str3 = "PMQNO";
// Print the given string and interleaving strings.
System.out.println("The given string is: " + str3);
System.out.println("The interleaving strings are " + str1 + " and " + str2);
// Check if the given string is interleaving of str1 and str2, then print the result.
System.out.println("The given string is interleaving: " + checkInterleaved(str1, str2, str3));
}
// Method to check if a string is interleaving of two other strings.
private static boolean checkInterleaved(String str1, String str2, String CheckInString) {
int i = 0, j = 0, k = 0;
// If the length of concatenated str1 and str2 doesn't match the length of the checked string, return false.
if (str1.length() + str2.length() != CheckInString.length()) {
return false;
}
// Loop through the checked string.
while (k < CheckInString.length()) {
// Check if character at index i in str1 matches with character at index k in CheckInString.
if (i < str1.length() && str1.charAt(i) == CheckInString.charAt(k)) {
i++;
}
// Check if character at index j in str2 matches with character at index k in CheckInString.
else if (j < str2.length() && str2.charAt(j) == CheckInString.charAt(k)) {
j++;
} else {
return false;
}
k++;
}
// If lengths of str1, str2, and CheckInString don't match, return false.
if (!(i == str1.length() && j == str2.length() && k == CheckInString.length())) {
return false;
}
return true;
}
}
Sample Output:
The given string is: PMQNO The interleaving strings are MNO and PQ The given string is interleaving: true The given string is: PNQMO The interleaving strings are MNO and PQ The given string is interleaving: false
N.B.: In the 2nd case, in interleave string, N comes before M and in original string str1 = MNO (N comes after M) So it is not interleaved.
Flowchart:
Java Code Editor:
Improve this sample solution and post your code through Disqus
Previous: Write a Java program to print all permutations of a given string with repetition.
Next: Write a Java program to find length of the longest substring of a given string without repeating characters.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics