Program w języku Java do sprawdzania, czy ciąg jest prawidłowym tasowaniem dwóch różnych ciągów

W tym przykładzie sprawdzimy, czy ciąg jest prawidłowym tasowaniem dwóch innych ciągów w Javie.

Aby zrozumieć ten przykład, należy znać następujące tematy dotyczące programowania w języku Java:

  • Ciąg Java
  • Java while i zrób… while Loop

Przykład: Sprawdź, czy ciąg jest prawidłowym tasowaniem dwóch innych ciągów

 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); ) ) ) )

Wynik

 1XY2 jest prawidłowym tasowaniem XY, a 12 Y12X nie jest prawidłowym tasowaniem XY i 12

W powyższym przykładzie mamy tablicę ciągów o nazwie results. Zawiera dwa ciągi: 1XY2 i Y12X. Sprawdzamy, czy te dwa łańcuchy są poprawnymi shuffle stringów pierwszy (XY) i drugi (12).

Tutaj program mówi, że 1XY2 jest prawidłowym przetasowaniem XY i 12. Jednak Y12X nie jest prawidłowym przetasowaniem.

Dzieje się tak, ponieważ Y12X zmienił kolejność łańcucha XY. Tutaj Y jest używane przed X. Zatem, aby było poprawnym tasowaniem, kolejność łańcuchów powinna być zachowana.

Uwaga : program się myli, jeśli pasują do siebie początkowe litery dwóch ciągów. Na przykład, jeśli ab12 i abb34 są dwoma łańcuchami, to abbab1234 jest prawidłowym tasowaniem.

Jednak program potraktuje dwie pierwsze litery ab jako część pierwszego ciągu. Z tego powodu trzecia litera b nie pasuje zarówno do trzeciej litery pierwszego ciągu (1), jak i do pierwszej litery drugiego ciągu (a).

Interesujące artykuły...