Program Java na kontrolu, či je reťazec platným zamiešaním dvoch odlišných reťazcov

V tomto príklade skontrolujeme, či je reťazec platným zamiešaním dvoch ďalších reťazcov v Jave.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Java String
  • Java zatiaľ čo a robiť … zatiaľ čo Loop

Príklad: Skontrolujte, či je reťazec platným zamiešaním dvoch ďalších reťazcov

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

Výkon

 1XY2 je platné zamiešanie XY a 12 Y12X nie je platné zamiešanie XY a 12

Vo vyššie uvedenom príklade máme pole reťazcov s názvom results. Obsahuje dva reťazce: 1XY2 a Y12X. Kontrolujeme, či sú tieto dva reťazce platné zamiešanie reťazcov prvý (XY) a druhý (12).

Tu program hovorí, že 1XY2 je platný náhodný prevod XY a 12. Y12X však nie je platný náhodný výber.

Je to preto, že Y12X zmenil poradie reťazca XY. Tu sa Y používa pred X. Preto, aby to bolo platné zamiešanie, malo by sa zachovať poradie reťazca.

Poznámka : Ak sa začiatočné písmená dvoch reťazcov zhodujú, program bude zmätený. Napríklad, ak AB12 a abb34 sú dva reťazce, potom abbab1234 je platný v náhodnom poradí.

Program však bude považovať prvé dve písmená ab za súčasť prvého reťazca. Z tohto dôvodu sa tretie písmeno b nezhoduje s tretím písmenom prvého reťazca (1) a prvým písmenom druhého reťazca (a).

Zaujímavé články...