Trong ví dụ này, chúng tôi sẽ kiểm tra xem một chuỗi có phải là sự xáo trộn hợp lệ của hai chuỗi khác trong Java hay không.
Để hiểu ví dụ này, bạn nên có kiến thức về các chủ đề lập trình Java sau:
- Chuỗi Java
- Java while và do… while Loop
Ví dụ: Kiểm tra xem một chuỗi có phải là sự xáo trộn hợp lệ của hai chuỗi khác hay không
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); ) ) ) )
Đầu ra
1XY2 là xáo trộn hợp lệ của XY và 12 Y12X không phải là xáo trộn hợp lệ của XY và 12
Trong ví dụ trên, chúng ta có một mảng chuỗi có tên là kết quả. Nó chứa hai chuỗi: 1XY2 và Y12X. Chúng tôi đang kiểm tra xem hai chuỗi này có phải là sự xáo trộn hợp lệ của chuỗi thứ nhất (XY) và thứ hai (12) hay không.
Ở đây, chương trình cho biết 1XY2 là một lần xáo trộn hợp lệ của XY và 12. Tuy nhiên, Y12X không phải là một lần trộn hợp lệ.
Điều này là do Y12X đã thay đổi thứ tự của chuỗi XY. Ở đây, Y được sử dụng trước X. Do đó, để trở thành một lần xáo trộn hợp lệ, thứ tự của chuỗi phải được duy trì.
Lưu ý : Chương trình sẽ nhầm lẫn nếu các ký tự đầu tiên của hai chuỗi khớp nhau. Ví dụ: nếu ab12 và abb34 là hai chuỗi, thì abbab1234 là một lần trộn hợp lệ.
Tuy nhiên, chương trình sẽ coi hai chữ cái đầu tiên ab là một phần của chuỗi đầu tiên. Do đó, ký tự thứ ba b không khớp với cả ký tự thứ ba của chuỗi đầu tiên (1) và ký tự đầu tiên của chuỗi thứ hai (a).