Título: solucion del problema en JAVA Publicado por: bengy en 13 Julio 2011, 01:54 am Alguna sugerencia de como mejorar este code me refiero en las lineas de code ejemplo: entrada: hola mundo y hola a todos Salida : hola=2 mundo=1 y=1 a=1 todos=1 Código: public String contarPalabras2(String palabras ){ Alguna sugerencia de como mejorar este code me refiero en las lineas de code Título: Re: solucion del problema en JAVA Publicado por: Valkyr en 15 Julio 2011, 14:09 pm Ya propuse en otro post una respuesta a este problema.
Cita de: Valkyr Yo suponiendo que cada palabra esté separada por uno o más espacio haría lo siguiente: Código
haría uso de un mapa que viene para el caso bastante bien. Saludos. Es bastante sencillo el código y son muy pocas lineas en comparación con la solución que propones. Sí quisieses mostrar la solución en una única linea no tendría mayor complejidad que hacer lo siguiente: Código
Por cierto, con split(" +") lo que hace es separar por uno o más espacios. Saludos y espero te sirva. Título: Re: solucion del problema en JAVA Publicado por: bengy en 18 Julio 2011, 01:50 am Algun otro code mas eficiente??? o por lo menos algun consejo para que mejore este code porfaaaaaa!!!
Título: Re: solucion del problema en JAVA Publicado por: Valkyr en 18 Julio 2011, 02:17 am La solución que te propuse es bastante eficiente. El primer bucle for tiene un orden de complejidad de O(n). Luego a la hora de insertar en el mapa no tengo ni idea de que orden de complejidad ofrecerá, pero me imagino que será el más eficiente posible.
Quizás podría incrementarse un poco la eficiencia del código que te propuse de esta forma: Código
Nos aprovecharíamos de que si el elemento no está almacenado en el mapa el método get() devuelve un valor nulo, y por tanto no tendríamos que realizar primero la comprobación de "ifresultados.contains()" para luego realizar el get() y posteriormente el put(). El último bucle es totalmente necesario, ya que debes recorrer todo el mapa para saber la solución, también tiene orden de complejidad O(n) en el peor caso. Sí lo que quieres son optimizaciones sobre tu código, con lo que te he comentado tienes de sobra para pensar sobre que podrías hacer. Saludos. |