Ich versuche, Algorithmus/Datenstruktur zu lernen. Um mein Wissen zu verbessern, versuche ich einige der Online-Probleme zu lösen. Eines der Probleme zu lösen, ich versucheGegeben eine Zeichenfolge, die nur aus 0, 1 oder 2s besteht, zählen Sie die Anzahl der Teilstrings, die die gleiche Anzahl von 0s, 1s und 2s haben
bei practiceque gegebenIch habe versucht, unter Methode:
def count_zero_one_two():
s = '102100211'
s_len = len(s)
count = 0
for i in range (s_len-1):
j = i+1
k = j+1
#print i, j, k, count
#print s[i], s[j], s[k]
if k > (s_len-1):
print "end"
break
elif (s[i] != s[j]) and (s[i] !=s[k]) and (s[j] != s[k]):
print s[i], s[j], s[k]
print "not equal"
count = count+1
#print count
else:
print s[i], s[j], s[k]
print "equal"
k = j +i
print count
count_zero_one_two()
Frage: wenn meine Eingabezeichenfolge ist „102100211“, dann sollte 5 zählen, aber ich bin bekommen 4. Irgendeine Idee?
So ist das Problem: Angesichts einer Zeichenfolge, die nur aus 0, 1 oder 2s besteht, zählen die Nummer des Teilstrings, die die gleiche Anzahl von 0s, 1s und 2s haben. –
102, 021, 210, 021,210021 - Das sind Ihre Antworten für dieses Beispiel. Hoffentlich überzeugt Sie das, dass Sie einen neuen Ansatz für dieses Problem brauchen. –
Hier ist ein Problem mit Ihrer Syntax: 'x = '9999999''' für i im Bereich (len (x) -1): print i' gibt '0, 1, 2, 3, 4, 5, 6' oder zurück so etwas, nicht "9, 9, 9 ...", wie du es erwartest. –