Estoy enganchado a esta página desde hace varios dias. Te proponen ejercicios de programación más o menos cortos en varios lenguajes (yo estoy con los de java) y luego puedes pasar tu propuesta por un juego de pruebas que ellos mismos han confeccionado para cada ejercicio.
Me ha resultado curioso este ejercicio: http://codingbat.com/prob/p134250
En principio no acababa de entender del todo lo que estaba pidiendo (qué raro viniendo de mí) pero luego se me encendió al bombilla e hice esto:
Código:public boolean xyBalance(String str) { boolean result = true; for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == 'x') {result = false;} if (str.charAt(i) == 'y') {result = true;} } return result; }
Después miro la solución propuesta por la propia página y se me ha partido el culo cuando he visto lo rocambolesca que es. O se me ha escapado algo (cosa que dudo porque mi código ha pasado todo el juego de pruebas perfectamente) o el que propone soluciones en esta página sabe aún menos programación que yo XDDDDDDDDD:
Código:public boolean xyBalance(String str) { // Find the rightmost y int y = -1; for (int i = 0; i < str.length(); i++) { if (str.charAt(i)=='y') y = i; } // Look at the x's, return false if one is after y for (int i = 0; i < str.length(); i++) { if (str.charAt(i)=='x' && i > y) return false; } return true; // Solution notes: this solution uses two loops, each written the simple // 0..length way. You could do it with a single reverse loop, noticing // if you see an x before a y. Or use lastIndexOf(). }
Marcadores