Hmmm. Ich kann nicht anders, als mir Sorgen um FX zu machen. Es ist so schlimm, dass ich nicht studieren kann, weil ich mir zu viele Sorgen um den Marktpreis mache ... Ich kann mir keine Lösung vorstellen, aber meine mentale Stärke reicht nicht aus.
Alles was Sie tun müssen, ist die hinzugefügten zu vergleichen. Ich habe den ternären Operator verwendet.
answerA.py
a,b,c,d=map(int,input().split())
print("Left" if (a+b)>(c+d) else "Right" if (a+b)<(c+d) else "Balanced")
Sie können der Reihe nach von 1 bis n zählen.
answerB.py
n,a,b=map(int,input().split())
ans=0
for i in range(1,n+1):
s=0
j=i
while j!=0:
s+=(j%10)
j//=10
if a<=s<=b:ans+=i
print(ans)
Wenn k so verwendet wurde, wie es war, fiel es wahrscheinlich aufgrund eines Berechnungsfehlers um einen Fall. Es ist natürlich, dass nicht ganzzahlige Berechnungen wie Protokollberechnungen vorsichtig mit Fehlern sein sollten **, aber ich möchte dies berücksichtigen. Außerdem wird der zweite Code sorgfältig geschrieben, damit er von O (log (x / y)) übergeben werden kann.
answerC.py
import math
x,y=map(int,input().split())
k=math.floor(math.log2(y/x))
for i in range(k+3):
if x*(2**i)>y:
print(i)
break
answerC_better.py
import math
x,y=map(int,input().split())
ans=0
while x<=y:
x*=2
ans+=1
print(ans)
Zuerst habe ich mir die Beispielbeispiele angesehen und festgestellt, dass es viele Nullen und Einsen gibt, aber es war nicht so einfach. In einem solchen Inversionsproblem können Sie sehen, dass ** die Beziehung zwischen dem ausgewählten Teil und dem nicht ausgewählten Teil in der Inversionsoperation ** umgekehrt ist. Mit anderen Worten, wenn [l, r] invertiert ist, ist die Länge der Zeichenkette n, und wenn man den 1-Index betrachtet, die beiden Teile [1, l-1], [r + 1, n] und [ Die Beziehung des l, r] Teils ändert sich. Wenn daher Nullen und Einsen ausgetauscht werden, müssen sie nebeneinander gleich sein. Wenn die vertauschten Positionen k, k + 1, ** sind, müssen Sie [v, k], [k + 1, w] auswählen und invertieren, um die beiden gleich zu machen ** .. Hier möchte ich den Teil so lange wie möglich aus dem Thema auswählen, und die Länge ist offensichtlich, wenn v = 1 oder w = n ist. Finden Sie daher max (Länge von [1, k], Länge von [k + 1, n]) für die Stellen, an denen sie ersetzt werden, und die kürzeste ist die Antwort. Beachten Sie auch, dass ** wenn alle gleich sind, die Antwort n ** ist. (Ich hatte Schmerzen, weil ich inf richtig auf ans eingestellt hatte.)
answerD.py
s=input()
l=len(s)
ans=l
for i in range(l-1):
if s[i]!=s[i+1]:
ne=max(i+1,l-i-1)
ans=min(ans,ne)
print(ans)
Recommended Posts