▼ Frage
--List gibt eine Zeichenfolge beliebiger Länge an
▼sample input
python
s ="aba"
n =10
▼sample output
python
7
image
abaabaabaa <-7 a
▼my answer
python
def repeatedString(s, n):
a = s.count("a")
ans=i=0
#Finden Sie die Nummer eines in den überschüssigen Zeichen enthaltenen
r = n%len(s)
if r!=0:
while i<r:
if s[i]=="a":
ans += 1
i+=1
ans += a*int(n/len(s))
return ans
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
s = input()
n = int(input())
result = repeatedString(s, n)
fptr.write(str(result) + '\n')
fptr.close()
Ersetzen Sie während mit für
def repeatedString(s, n):
a = s.count("a")
ans=0
#Finden Sie die Anzahl der Iterationen(math.Verwenden Sie keinen Boden)
r = n%len(s)
if r!=0:
for i in range(r):
if s[i]=="a":
ans += 1
ans += a*int(n/len(s))
return ans
repeatedString(s, n)
▼ Verarbeitung
--Extrahieren Sie das Element aus der Satzliste s mit überschüssigen Zeichennummern und erstellen Sie eine Liste, in der 1 für a und 0 für andere Fälle gespeichert sind.
Einschlussnotation
def repeatedString(s, n):
a = s.count("a")
ans=0
#Finden Sie die Anzahl der Iterationen(math.Verwenden Sie keinen Boden)
r = n%len(s)
if r!=0:
ans = sum([(1 if s[i]=="a" else 0) for i in range(r)])
ans += a*int(n/len(s))
return ans
repeatedString(s, n)
Ich habe eine wiederholte Zeichenfolge für die angegebene Anzahl von Zeichen erstellt und die Anzahl von a daraus gezählt, aber wenn die Anzahl groß ist, tritt ein Speicherfehler auf.
python
s ="babbaabbabaababaaabbbbbbbababbbabbbababaabbbbaaaaabbaababaaabaabbabababaabaabbbababaabbabbbababbaabb"
n = 860622337747
▼ Das Auffinden einer Zeichenkette ist schwierig.
python
def repeatedString(s, n):
#Fortschritt (Mathe).Boden wird nicht benutzt)
if float(n/len(s)):
r = int(n/len(s)) +1
else:
r = n/len(s)
#Fragen Sie nach einer Schnur
ans = x = 0
ss = s*r
for letter in ss:
x += 1
if x>n:
break
elif letter == "a":
ans += 1
return ans
repeatedString(s, n)
#MemoryError: