We'll say that a String is xy-balanced if for all the 'x' chars in the string, there exists a 'y' char somewhere later in the string. So "xxy" is balanced, but "xyx" is not. One 'y' can balance multiple 'x's. Return true if the given string is xy-balanced.
xyBalance("aaxbby") → true
xyBalance("aaxbb") → false
xyBalance("yaaxbb") → false
Eleganckie rozwiązanie z dodatkową zmienną i loopem iterujacym od konca - to zalatwia problem gdy x jest na koncu jesli x jest na koncu a od tego zaczynamy loopa na dzien dobry dostajemy false
xyBalance("aaxbby") → true
xyBalance("aaxbb") → false
xyBalance("yaaxbb") → false
Szukam char i rownego x, nastepnie musimy spwardzic czy po tym x jest y tj generujemy string i drugi warunek ten substring zaczyna sie od i w ktorym zostal odnotowany x i jedzie do konca szukajac y - jesli true to oba true jesli false wtedy false
public boolean xyBalance(String str) { for (int i=0; i<str.length();i++){ if (str.charAt(i)=='x'){ if ( str.substring(i+1,str.length()).contains("y")&& str.charAt(str.length()-1)!='x'){ return true; }return false; } }return true; }
Eleganckie rozwiązanie z dodatkową zmienną i loopem iterujacym od konca - to zalatwia problem gdy x jest na koncu jesli x jest na koncu a od tego zaczynamy loopa na dzien dobry dostajemy false
public boolean xyBalance(String str) { int len = str.length() - 1; char ch; for(int i = len; i >= 0; i--) { ch = str.charAt(i); if(ch == 'x') return false; else if(ch == 'y') return true; } return true; }
Komentarze
Prześlij komentarz