In diesem Artikel werden Fragen zu AtCoder Beginners Selection 10 + 1 in Python (3.8) beantwortet.
AtCoder ist ein Wettbewerbsprogrammierungsdienst mit Ursprung in Japan. Weitere Informationen finden Sie in den Artikeln von @ drken und @ e869120
Bitte sehen Sie. Besonders @drken
Die letzten 10 oben zusammengefassten Fragen wurden später von der AtCoder-Formel als AtCoder Beginners Selection als Übungen für Anfänger übernommen.
Es gibt bereits einige Python-Antworten für AtCoder Beginners Selection, aber dieser Artikel war besonders hilfreich. Vielen Dank. In diesem Artikel werde ich Ihnen eine Antwort geben, die sich für Sie "gut" anfühlt. Wenn Sie sie vergleichen, können Sie sehen, dass sie im Detail verbessert wurden.
Abgesehen davon denke ich, dass die "Güte" des Codes vom Zweck und der Situation abhängt und kein Konzept ist, das klar definiert werden kann, sondern hauptsächlich
Es gibt zwei Richtungen, und ich denke, es gibt oft einen Kompromiss zwischen diesen beiden Richtungen. Dieser Kompromiss trat auch zum Zeitpunkt der Sprachauswahl vor dem Schreiben des Codes auf. Wie Sie sehen können, wenn Sie die Antwort in Python wie in diesem Artikel mit der Antwort in C ++ von drken vergleichen, wird gesagt, dass sie in Python im Vergleich zu C ++ geschrieben wird. Die Wahl scheint in der Lage zu sein, die Lesbarkeit auf Kosten des Rechenaufwands zu priorisieren.
Prägnanz wird oft als "Güte" von Code bezeichnet. Wenn es sich jedoch nicht um Einwegcode handelt, ist Prägnanz nur dann wertvoll, wenn sie zur Lesbarkeit beiträgt. Wenn sie weniger lesbar ist, ist es besser, den Code nicht zu verkürzen. Persönlich denke ich.
a = int(input())
b, c = map(int, input().split())
s = input()
print(a+b+c, s)
a, b = map(int, input().split())
print("Odd" if a%2 and b%2 else "Even")
print(input().count("1"))
_ = input()
A = [*map(int, input().split())]
count = 0
while not any(a%2 for a in A):
A = [a/2 for a in A]
count += 1
print(count)
import itertools as it
A, B, C, X = map(int, [input() for _ in range(4)])
count = 0
for a, b, c in it.product(range(A+1), range(B+1), range(C+1)):
if 500*a + 100*b + 50*c == X:
count += 1
print(count)
N, A, B = map(int, input().split())
print(sum(i for i in range(N+1) if A <= sum(map(int,str(i))) <= B))
--Für "i" von "int" können Sie ein Array erhalten, das "int" jeder Ziffer von "i" enthält, wenn Sie "int" auf "str (i)" abbilden.
_ = input()
a = sorted(map(int,input().split()), reverse=True)
print(sum(a[::2]) - sum(a[1::2]))
N = int(input())
print(len(set(input() for _ in range(N))))
N, Y = map(int, input().split())
for n_10k in range(N+1):
for n_5k in range(N-n_10k+1):
n_1k = N - n_10k - n_5k
if n_10k*10000 + n_5k*5000 + n_1k*1000 == Y:
print(n_10k, n_5k, n_1k)
exit()
print(-1, -1, -1)
S = input()
while S:
for x in ["dream","dreamer","erase","eraser"]:
if S.endswith(x):
S = S[:-len(x)]
break
else:
print("NO")
break
else:
print("YES")
――Welches Präfix ist nicht eindeutig festgelegt, welches Suffix jedoch eindeutig festgelegt ist
--else
offor ... else ...
and while ... else ...
funktioniert, wenn for
und while
normal enden und abnormal mit break
enden. Funktioniert nicht wenn
t0, x0, y0 = 0, 0, 0
for _ in range(int(input())):
t, x, y = map(int, input().split())
margin = (t-t0) - abs(x-x0) - abs(y-y0)
if margin < 0 or margin%2 != 0:
print("No")
break
t0, x0, y0 = t, x, y
else:
print("Yes")
――Zunächst, wenn margin
negativ ist, können Sie den Zielpunkt nicht erreichen. Da es keine Option zum Stoppen gibt, können Sie den Zielpunkt nicht erreichen, wenn "Rand" ungerade ist.
Recommended Posts