Lösen Sie 100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten in Python. Das Ziel ist es, hellblau zu werden, wenn Sie alles gelöst haben.
Dieser Artikel ist "001 - 004 Alle Suche: Alle Aufzählung".
In Python können Sie Kombinationen mit `` `itertools``` aufzählen, aber ich habe es in einer for-Anweisung zum Üben geschrieben. Ich bin nicht besonders gestolpert.
answer_list = []
while True:
n, x = map(int, input().split())
if n == 0 and x == 0:
break
count = 0
for first in range(1, n + 1):
for second in range(first + 1, n + 1):
for third in range(second + 1, n + 1):
if first + second + third == x:
count += 1
answer_list.append(count)
for answer in answer_list:
print(answer)
Da in der Problemanweisung angegeben ist, dass keine Duplizierung vorliegt, achten Sie darauf, den Bereich von `first```,` `second
undThird``` der for-Anweisung nicht zu duplizieren. Insbesondere setzen Sie den Anfang von
second`` auf
first + 1``` und den Beginn von
`Third auf`` second + 1
.
def is_target(num):
count = 0
for i in range(1, num+1):
if num % i == 0:
count += 1
if count == 8:
return True
else:
return False
if __name__ == "__main__":
N = int(input())
count = 0
for num in range(1, N+1, 2):
count += is_target(num)
print(count)
Erstellen Sie eine Funktion namens `is_target```, die`
True und `` `False
zurückgibt, unabhängig davon, ob der Bruch 8 ist oder nicht.
Überprüfen Sie danach `` `is_target``` auf ungerade Zahlen von 1 bis N und addieren Sie sie (True ist 1, damit Sie sie so hinzufügen können, wie sie sind).
target = 'ACGT'
S = input()
answer = 0
for start in range(len(S)):
if S[start] not in target:
continue
count = 0
for end in range(start, len(S)):
if S[end] not in target:
break
count += 1
answer = max(answer, count)
print(answer)
Der aus der Zeichenkette S zu extrahierende Teilstring kann unter Verwendung der Indizes `start``` und`
end als `` `S [start: end]` `` geschrieben werden, also `` `start Überprüfen Sie für jedes der `` `und`` end
, ob es sich um `` `ACGT``` handelt.
Bei der Überprüfung ist die for-Anweisung von `start
continue, wenn es nicht `` `ACGT
ist, und die for-Anweisung von`` end``` ist `` ACGT Beachten Sie, dass wenn es nicht ``
ist, es` `` break``` ist.
N, M = map(int, input().split())
A = [list(map(int, input().split())) for _ in range(N)]
answer = 0
for song1 in range(M):
for song2 in range(song1+1, M):
score = 0
for i in range(N):
score += max(A[i][song1], A[i][song2])
answer = max(answer, score)
print(answer)
song1
Wannsong2
Drehen Sie die for-Anweisung um.
Und darin wird für jeden Schüler (Index `i```) die größere Punktzahl von`
song1 und `` `song2
übernommen.
Recommended Posts