Программа Java для проверки того, является ли строка допустимым перемешиванием двух отдельных строк

В этом примере мы проверим, является ли строка допустимым перемешиванием двух других строк в Java.

Чтобы понять этот пример, вы должны знать следующие темы программирования Java:

  • Строка Java
  • Java while и do … while Loop

Пример: проверьте, является ли строка допустимым перемешиванием двух других строк

 class Main ( // check if result string is valid shuffle of string first and second static boolean shuffleCheck(String first, String second, String result) ( // check length of result is same as // sum of result of first and second if(first.length() + second.length() != result.length()) ( return false; ) // variables to track each character of 3 strings int i = 0, j = 0, k = 0; // iterate through all characters of result while (k != result.length()) ( // check if first character of result matches with first character of first string if (i < first.length() && first.charAt(i) == result.charAt(k)) i++; // check if first character of result matches the first character of second string else if (j < second.length() && second.charAt(j) == result.charAt(k)) j++; // if the character doesn't match else ( return false; ) // access next character of result k++; ) // after accessing all characters of result // if either first or second has some characters left if(i < first.length() || j < second.length()) ( return false; ) return true; ) public static void main(String() args) ( String first = "XY"; String second = "12"; String() results = ("1XY2", "Y12X"); // call the method to check if result string is // shuffle of the string first and second for (String result : results) ( if (shuffleCheck(first, second, result) == true) ( System.out.println(result + " is a valid shuffle of " + first + " and " + second); ) else ( System.out.println(result + " is not a valid shuffle of " + first + " and " + second); ) ) ) )

Вывод

 1XY2 - допустимое перемешивание XY, а 12 Y12X - неправильное перемешивание XY и 12

В приведенном выше примере у нас есть массив строк с именем results. Он содержит две строки: 1XY2 и Y12X. Мы проверяем, являются ли эти две строки действительными, перемешивая сначала строки (XY), а вторые (12).

Здесь программа говорит, что 1XY2 - это допустимое перемешивание XY и 12. Однако Y12X не является допустимым перемешиванием.

Это потому, что Y12X изменил порядок строки XY. Здесь Y используется перед X. Следовательно, чтобы тасование было допустимым, порядок строки должен поддерживаться.

Примечание : программа запутается, если начальные буквы двух строк совпадают. Например, если ab12 и abb34 - две строки, тогда abbab1234 является допустимым перемешиванием.

Однако программа будет рассматривать первые две буквы ab как часть первой строки. Из-за этого третья буква b не совпадает ни с третьей буквой первой строки (1), ни с первой буквой второй строки (a).

Интересные статьи...