I enthielt, wurde für die Codierung this problem.Python - Substrings, die nur 'a', 'b' oder 'c'
Maggu hat gerade Spiel-Schule verbunden. Sein Lehrer brachte ihm A, A, B, B, C, C bei. Er ist sehr fasziniert von diesen Briefen und nun sucht er nur nach den Fäden, die nur diese Buchstaben enthalten. Aber wie gesagt, er ist ein kleiner Typ, er kann die Anzahl solcher Teilstrings nicht alleine berechnen. Finde die Anzahl solcher Strings.
def substrings(string):
for size in range(1, len(string)+1):
for index in range(len(string)-size+1):
yield string[index:index+size]
l = []
for x in range(int(raw_input())):
l.append(raw_input().lower())
not_ = 'defghijklmnopqrstuvwxyz'
for string in l:
count = 0
for substr in substrings(string):
if all(letter not in substr for letter in not_):
count = count + 1
print(count)
erkannte ich, dass wir das Problem Fall zu senken, reduzieren kann. Ich habe den Code geschrieben, aber es ist nicht effizient für große Strings. Und im Großen Sinne meine ich außergewöhnlich große Saiten. Ich habe erkannt, dass es die substrings
Funktion ist, die viel Zeit in Anspruch nimmt. Wie kann ich den Zeitaufwand der substrings
Funktion reduzieren? Kann ich es durch einen anderen Code ersetzen?
Danke.
Eine Verbesserung mit Python 2. U sollte 'xrange' anstelle von' range' verwenden. Es ist mehr Leistung für große Zahl – qvpham
@julivico Gute Idee. 'xrange' ist viel schneller als' range' in Python 2. –
Was möchten Sie mit dem Code in 'for x in range tun (int (raw_input())): l.append (raw_input(). lower ()) ' – qvpham