2016-05-22 7 views
-3

Ich versuche, diesen Code zu arbeiten. Wenn der Benutzer in einem "qwqwqw" und in "qw" eingibt, dann brauche ich "3" und nicht "2" wie jetzt. Es liest wahrscheinlich q und w getrennt, aber ich brauche es, um die genauen Benutzereingaben für den Ausdruck oder den Buchstaben in b zu suchen. Und ich brauche es, um von einem zu suchen. Wie kann ich den Code ändern, damit er funktioniert? Ich bin so weit gekommen und habe keine Gedanken mehr, was ich ändern soll ... Und ich kann keinen Text verwenden, der Methoden wie count oder findall vergleicht. Hier ist mein Code so weit:Python Heuhaufen und Nadel

a = input("String1: ") 
    b = input("String2: ") 

    common = {} 
    if len(a)>len(b): 
     for letter in a: 
      if letter in b: 
       common[letter]=1 

    print (len(common)) 
+2

Bei der Eingabe _ "qwqwqw" _ wo? Um 'a' einzugeben? Eingabe "b"? Beide? Bitte bereiten Sie eine eindeutige Problembeschreibung und [MCVE] vor. –

+1

Sie zählen die gemeinsamen Buchstaben. Wenn Sie "qwqwqw" für a und b eingeben, haben sie "q" und "w" gemeinsam, also gibt es 2. – JulienD

+2

'wenn a == 'qwqwqw': print ('3')' – C14L

Antwort

0
foo = 'qwqwqw' 
bar = 'wq' 

idx = 0 
counter = 0 

while True: 
    try: 
     # find the next instance of bar, starting at idx 
     found_at = foo.index(bar, idx) 

     # move idx to the next possible position (after the instance of bar) 
     idx = found_at + len(bar) 

     # increase the counter 
     counter += 1 
    except ValueError: 
     # foo.index(bar) will raise ValueError if bar cannot be found. that 
     # means we are done 
     break 

print counter 
Verwandte Themen