Java program za provjeru je li niz valjano miješanje dva različita niza

U ovom ćemo primjeru provjeriti je li niz valjano miješanje dvaju drugih nizova u Javi.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Java String
  • Java while and do … while Loop

Primjer: Provjerite je li niz valjano miješanje dvaju drugih nizova

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

Izlaz

 1XY2 je valjano preslikavanje XY i 12 Y12X nije važeće preslikavanje XY i 12

U gornjem primjeru imamo niz nizova koji se zove rezultati. Sadrži dvije žice: 1XY2 i Y12X. Provjeravamo jesu li ove dvije žice valjano miješanje nizova prvi (XY) i drugi (12).

Ovdje program kaže da je 1XY2 valjano miješanje XY i 12. Međutim, Y12X nije valjano miješanje.

To je zato što je Y12X promijenio redoslijed niza XY. Ovdje se Y koristi prije X. Dakle, da bi bilo valjano nasumično miješanje, redoslijed nizova treba održavati.

Napomena : Program se zbuni ako se podudaraju početna slova dviju žica. Na primjer, ako su ab12 i abb34 dva niza, tada je abbab1234 valjano miješanje.

Međutim, program će prva dva slova ab tretirati kao dio prvog niza. Zbog toga se treće slovo b ne podudara s trećim slovom prvog niza (1) i prvim slovom drugog niza (a).

Zanimljivi članci...