1- Dado dos letras (char) y una cadena (string) terminada en punto decir cuantas palabras de la cadena contienen las letras ingresadas, las letras pueden estar en cualquier orden
Me dijeron que en 30 minutos resuelva ese ejercicio, el cual lo hice pero muy largo pero me anduvo re bien! Pero el fucking profesor me dijo que era muy largo asique me desaprobo el final! Me dijo que con solo un WHILE y una sentencia DE CONDICION lo puedo resolver.
Al llegar a mi casa con toda la bronca pq me desaprobaron pero contento pq era como un desafio hacerlo mas corto para mi. Hice esto : (es lo mas corto que me salio )
Código Javascript:
Ver original
public class Basura { public static void main(String[] args) { String cadena="Holaao comooooo estaasao."; int c=contar(cadena,'a','o'); System.out.println("Las palabras que contienen esas letras son: "+c); } public static int contar (String cad,char a,char b) { int i=0,j=0,k=0,d=0,cont=0; char c,l; boolean band; while (j<cad.length()) { c=cad.charAt(j); if(c==a || c==b) { band=true; i=d; k=j+1; cad=cad.substring(0,cad.length()-1)+" "; while(k<cad.indexOf(" ",i) && (band)) { l=cad.charAt(k); if(l!=c) { if(l==a || l==b) { cont++; c=cad.charAt(k); band=false; } } k++; } j=k+1; d=k+1; } else j++; } return cont; } }
LA SALIDA ES: "2"
Como veran lo hice con 2 While y 3 Sentecias de condicion. La pregunta del millon es:
ES POSIBLE HACERLO CON UN WHILE Y UNA SENTENCIA DE CONDICION???
Hay que tener cuidado de que las 2 letras pueden estar mas de una mes en una palabra, pero solo debera contarse como una palabra que contiene esas letras:
Ejemplo
Entra: "Holaa como te vaoa."
Ingresando las letras "a" y "o"
Salida: 2
MUCHAS GRACIAS LOS QUE ME PUEDAN AYUDAR