Codice per stringhe

di il
1 risposte

Codice per stringhe

Data una stringa s e una lettera c in input,scrivere una funzione che trovi la distanza max tra due caratteri c presenti nella stringa. Ho provato questo codice ma mi da qualche problema:
def distanza(s,c):
     dist=[]
     posti=0
     for c in s:
        for i in range(len(s)):
           if(c==s[i]):
               posti=len(s[i])-s.index(c)
               dist.append(posti)
               posti=0
     return dist
     print(max(dist))

1 Risposte

  • Re: Codice per stringhe

    Secondo me, puoi semplicemente trovare la prima occorrenza del carattere c e poi l'ultima occorrenza di c, quella è la distanza massima.

    Se invece vuoi determinare la distanza massima fra caratteri consecutivi: rispetto a quello che hai postato, puoi fare a meno della lista dist[].
    Cicla su tutta la stringa, calcola di volta in volta la distanza e per ciascuna distanza calcolata verifichi se questa è maggiore della distanza massima fino a quel punto trovata.
    In pseudocodice:
    c1=-1
    c2=-1
    maxdist=-1
    ciclo stringa
       se carattere riconosciuto
           c1=c2
           c2=posizione corrente
           se c1>=0 e c2>=0
               dist = c2-c1
               se dist > maxdist
                   maxdist = dist
    restituisci maxdist
    
Devi accedere o registrarti per scrivere nel forum
1 risposte