У цьому прикладі ми перевіримо, чи рядок є допустимим перетасовкою двох інших рядків у Java.
Щоб зрозуміти цей приклад, ви повинні знати такі теми програмування Java:
- Рядок Java
- Java в той час як і робити … в той час як 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).