Programa... no sale..!!!
Publicado por Leandro (1 intervención) el 27/05/2010 23:10:40
Hola.. estuve realizando ejercicios de python, los saco del libro "Introduccion a la programacion con Python", de Andres Marzal.. hasta hace unas horas venia de 10, me iban saliendo, pero me trabe en este que dice:
" Diseña una funcion que diga en que posicion empieza la "serie" mas larga de una lista. Nota: si hay dos series de igual longitud y esta es la mayor debes devolver la posicion de la primeta de las "series".Por ejemplo para [8,2,2,9,9] deveras devolver la posicion 1.
Ese es el problema, la verdad me mato...
pense esto, pero la verdad no se como hacerlo en codigo..
Tenemos una serie actual y una serie mas larga hasta el momento, y hay que ver que pasa cuando miramos el próximo elemento de la lista, lista[i]. Puede ser igual a la serie actual, valorSerieActual, o distinto. Si es igual, el largo la serie actual crece en 1 elemento. Si es distinto, se acabo la serie actual y empieza otra. Hay que compararla con la serie más larga que teníamos: si esta es aún mas larga (longSerieActual > longSerieMasLarga), hay que actualizar esos datos: inicioSerieMasLarga = inicioSerieActual; longSerieMasLarga = longSerieActual. Y ademas, empieza otra serie nueva: así que inicioSerieActual = posicion en la lista, o sea i. longSerieActual = 1. valorSerieActual = lista[i]
En cualquiera de los dos casos, despues de procesar lista[i], seguimos con el proximo elemento.
Para que todo esto funcione desde el principio, hay que empezar con longSerieMasLarga=0, inicioSerieActual=0, longSerieActual=0, y valorSerieActual puede ser cualquier cosa (por ejemplo, None).
No se como plasmarlo en Python, no me sale, horas estuve intentando... :S
Quiero que me digan como hacerlo, bien bien paso por paso, xq estoy preocupado, ya que rindo dentro de 20 dias y teoricamente este ej. es facil :S
Desde ya muchas gracias, me ayudarian un monton.
Suerte..
" Diseña una funcion que diga en que posicion empieza la "serie" mas larga de una lista. Nota: si hay dos series de igual longitud y esta es la mayor debes devolver la posicion de la primeta de las "series".Por ejemplo para [8,2,2,9,9] deveras devolver la posicion 1.
Ese es el problema, la verdad me mato...
pense esto, pero la verdad no se como hacerlo en codigo..
Tenemos una serie actual y una serie mas larga hasta el momento, y hay que ver que pasa cuando miramos el próximo elemento de la lista, lista[i]. Puede ser igual a la serie actual, valorSerieActual, o distinto. Si es igual, el largo la serie actual crece en 1 elemento. Si es distinto, se acabo la serie actual y empieza otra. Hay que compararla con la serie más larga que teníamos: si esta es aún mas larga (longSerieActual > longSerieMasLarga), hay que actualizar esos datos: inicioSerieMasLarga = inicioSerieActual; longSerieMasLarga = longSerieActual. Y ademas, empieza otra serie nueva: así que inicioSerieActual = posicion en la lista, o sea i. longSerieActual = 1. valorSerieActual = lista[i]
En cualquiera de los dos casos, despues de procesar lista[i], seguimos con el proximo elemento.
Para que todo esto funcione desde el principio, hay que empezar con longSerieMasLarga=0, inicioSerieActual=0, longSerieActual=0, y valorSerieActual puede ser cualquier cosa (por ejemplo, None).
No se como plasmarlo en Python, no me sale, horas estuve intentando... :S
Quiero que me digan como hacerlo, bien bien paso por paso, xq estoy preocupado, ya que rindo dentro de 20 dias y teoricamente este ej. es facil :S
Desde ya muchas gracias, me ayudarian un monton.
Suerte..
Valora esta pregunta
0