elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ayuda con python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con python  (Leído 2,843 veces)
Cache01

Desconectado Desconectado

Mensajes: 3


Ver Perfil
ayuda con python
« en: 3 Abril 2014, 07:57 am »

No se como hacer el siguiente problema!!!!

Dada una lista de palabras, se pide encontrar un ordenamiento circular de las mismas en el cual una palabra B puede suceder a otra A si la primer letra de B es igual a la última letra de A. El ordenamiento debe ser circular (toda palabra debe tener una que la antecede y una que la sucede) y completo (debe incluir a todas las palabras de la lista). En caso de no existir un ordenamiento se debe informar "No existe ordenamiento

ej
entrada:
arbol
orden
susana
otro
listo
nexos

la salida seria:
susana
arbol
listo
otro
orden
nexos

archivo
http://www.oia.org.ar/_media/prob/c3a02n3p1.pdf


« Última modificación: 3 Abril 2014, 08:11 am por Cache01 » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: ayuda con python
« Respuesta #1 en: 3 Abril 2014, 11:27 am »

vamos por partes!
1) el tema dice "ayuda en python" así que dinos en que sentencias tienes problemas
2) usas 2.x o 3.x
3) tienes difinido algo de la función o esperas todo del foro?
4) quizá necesitas solo el seudocódigo con la solución
5) podrías empezar con algo como:
    pedir las palabras a ordenar        : perro,casa,reloj,orden, etc
    cada una de ellas es una cadena
    tomar la primera letra de la primer cadena (p,perro)
    buscar esa letra en la última letra de las cadenas restantes (no está)
    sino está tendría que ser la primera ordenada
    buscar la ultima letra de la cadena y buscar la primera de las restantes
    ver cuantas posibles hay                      (o, perro coincide o,orden)
    sino coincide con alguna es imposible ordenar
    repetir con la segunda cadena
    sino coincide con ninguna ya no es posible ordenar
   etc.
6)si avanzas hasta ahí y muestras tus progresos seguro que los que más saben te ayudan con gusto.
7) dudo que alguien quiera hacer todo por ti!
   


En línea

Cache01

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda con python
« Respuesta #2 en: 4 Abril 2014, 02:11 am »

El problema que tengo es que no se como relacionar las palabras con los inicios y los finales

inicios=[]
finales=[]
juntos=[]
palabras=[]
try:
    x=int(input("Digite 1 para ingresar palabra o 2 para finalizar "))
    while x==1 and x!=2:
         palabra=input("Digite la palabra a ingresar ")
         palabra=str.lower(palabra)
         inicio=palabra[0]
         inicios.append(inicio)
         final=palabra[len(palabra)-1]
         finales.append(final)
         palabras.append(palabra)
         for i in range (0,len(inicios)-1):
             for a in range(0,len(finales)-1):
                 if i==a:
                     juntos.append(inicios)
                     juntos.append(finales[a])
                     print(juntos)
         
             x=int(input("Digite 1 para ingresar palabra o 2 para finalizar "))
    else:
        print("Programa finalizado")
except:
    print("error dato invalido")
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: ayuda con python
« Respuesta #3 en: 5 Abril 2014, 04:58 am »

a ver:
ok se me ocurre lo siguiente:
tenes 2 listas
A) [a,l,n,o,o,s] primera letra de arbol listo nexos orden otro susana
B) [l,o,s,n,o,a] ultima letra de arbol listo nexos orden otro susana

siendo arbol la primer palabra de la lista busco la 2 para la solucion

1) buscar l (letra final de arbol e inicio de la próxima) en A hay 1 sola asi que la segunda palabra es listo
buscar o (letra final de listo e inicio de la proxima) en A hay 2
2) comparar que la letra final de la palabra encontrada sea distina de la misma de inicio
si son iguales o sea: o(A) y o (B) usar esa primero porque sigue dando como siguiente letra de inicio o otro
sino son iguales usar cualquiera! orden
repetir 1)
repetir 2)

y listo! 

como escribis el código no me meto porque no hay error en la sintaxis, solo distintos métodos de programación y cada uno elige la que quiere!
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: ayuda con python
« Respuesta #4 en: 6 Abril 2014, 18:43 pm »

Hola de nuevo! no tengo mucho tiempo (ni ganas jeje) pero hice un código para que veas más o menos a que me refiero, espero te oriente!:
:CODE/
Lista=["nexos","arbol","listo","orden","susana"]
ListaFinal=[]
Orden= 0
LetrasInicio=[]
LetrasFinal=[]

def buscarElemento(lista, elemento):
    for i in range(0,len(lista)):
        if(lista == elemento):
            return i
           
print("Lista Original",Lista)
for i in Lista:
      LetrasInicio.append (i[0])   #letra inicial
      LetrasFinal.append(i[-1])     #letra final

ListaFinal.append (Lista[0]) #agrega palabra desde el lugar 0
for letras in LetrasFinal:
   LetraSiguientePalabra= buscarElemento(LetrasInicio,LetrasFinal[Orden])
   Repetido= LetrasInicio.count(LetrasFinal[Orden])  #busca si se repite la letra final en la letra inicial
   if Repetido== 1:
      SiguientePalabra= Lista[LetraSiguientePalabra]   
       ListaFinal.append(SiguientePalabra)
      Orden = LetraSiguientePalabra

ListaFinal.pop()
print ("Lista Ordenada",ListaFinal)

:\\CODE

Obvio que falta si está repetida una letra, pero mostrá avances y alguien que sepa(no es mi caso) te ayudará!
En línea

Cache01

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda con python
« Respuesta #5 en: 7 Abril 2014, 07:48 am »

Muchas Gracias !!!!!!! si le pude hacer pero con distintas funciones, en caso que de q quieras ver el codigo me avisas y te lo envio!!!!!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda IDE Python
Scripting
kyps 7 4,054 Último mensaje 4 Enero 2010, 06:15 am
por Carloswaldo
Ayuda con Python « 1 2 »
Scripting
Ideka 12 8,708 Último mensaje 19 Febrero 2010, 23:32 pm
por leogtz
Ayuda Con [Python]
Scripting
jero22 3 2,645 Último mensaje 2 Abril 2010, 20:51 pm
por Masita
Ayuda con Python
Scripting
Soft87 2 3,208 Último mensaje 27 Mayo 2011, 02:52 am
por Novlucker
[Python] ¿Por qué Python 2.7.3 admite la sintaxis de Python 3? « 1 2 »
Scripting
Yidu 10 11,146 Último mensaje 10 Febrero 2013, 21:46 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines