Πρόγραμμα Java για να ελέγξετε εάν μια συμβολοσειρά είναι έγκυρη αναδιάταξη δύο διακριτών χορδών

Σε αυτό το παράδειγμα, θα ελέγξουμε εάν μια συμβολοσειρά είναι η έγκυρη ανακατεύθυνση δύο άλλων χορδών στην 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

Στο παραπάνω παράδειγμα, έχουμε έναν πίνακα συμβολοσειρών που ονομάζεται αποτελέσματα. Περιέχει δύο χορδές: 1XY2 και Y12X. Ελέγχουμε εάν αυτές οι δύο συμβολοσειρές είναι έγκυρες ανακάτεμα χορδών πρώτα (XY) και δεύτερη (12).

Εδώ, το πρόγραμμα αναφέρει ότι το 1XY2 είναι ένα έγκυρο shuffle των XY και 12. Ωστόσο, το Y12X δεν είναι έγκυρο shuffle.

Αυτό συμβαίνει επειδή το Y12X έχει αλλάξει τη σειρά της συμβολοσειράς XY. Εδώ, το Υ χρησιμοποιείται πριν από το Χ. Ως εκ τούτου, για να είναι έγκυρη ανακατεύθυνση, πρέπει να διατηρείται η σειρά της συμβολοσειράς.

Σημείωση : Το πρόγραμμα μπερδεύεται εάν τα αρχικά γράμματα των δύο χορδών ταιριάζουν. Για παράδειγμα, εάν τα ab12 και abb34 είναι δύο χορδές, τότε το abbab1234 είναι μια έγκυρη τυχαία αναδιάταξη.

Ωστόσο, το πρόγραμμα θα αντιμετωπίζει τα δύο πρώτα γράμματα ab ως μέρος της πρώτης συμβολοσειράς. Λόγω αυτού, το τρίτο γράμμα b δεν ταιριάζει με το τρίτο γράμμα της πρώτης συμβολοσειράς (1) και το πρώτο γράμμα της δεύτερης συμβολοσειράς (α).

ενδιαφέροντα άρθρα...