Hmmm. Je ne peux pas m'empêcher de m'inquiéter de FX. C'est tellement mauvais que je ne peux pas étudier parce que je suis trop inquiet du prix du marché ... Je ne peux pas penser à une solution, mais ma force mentale ne suffit pas.
Tout ce que vous avez à faire est de comparer les éléments ajoutés. J'ai utilisé l'opérateur ternaire.
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")
Vous pouvez compter de 1 à n dans l'ordre.
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)
Lorsque k a été utilisé tel quel, il a probablement chuté d'un cas en raison d'une erreur de calcul. Il est naturel que les calculs non entiers tels que les calculs de journaux doivent faire attention aux erreurs **, mais je veux garder à l'esprit. De plus, le deuxième code est soigneusement écrit avec l'intention qu'il puisse être passé par O (log (x / y)).
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)
Au début, j'ai regardé les exemples d'exemples et j'ai décidé qu'il y avait beaucoup de 0 et de 1, mais ce n'était pas si simple. Dans un tel problème d'inversion, vous pouvez voir que ** la relation est inversée entre la partie sélectionnée et la partie non sélectionnée dans l'opération d'inversion **. En d'autres termes, lorsque [l, r] est inversé, la longueur de la chaîne de caractères est n, et lorsque l'on considère 1-index, les deux parties [1, l-1], [r + 1, n] et [ La relation de la partie l, r] change. Par conséquent, là où les 0 et les 1 sont échangés, ils doivent être identiques l'un à côté de l'autre. Ici, si les emplacements permutés sont k, k + 1, ** vous devez sélectionner [v, k], [k + 1, w] pour les inverser afin de les rendre identiques ** .. Ici, je veux rendre la partie à sélectionner dans le sujet aussi longue que possible, et la longueur est évidemment lorsque v = 1 ou w = n. Par conséquent, trouvez max (longueur de [1, k], longueur de [k + 1, n]) pour les endroits où ils sont remplacés, et le plus court est la réponse. Notez également que ** s'ils sont tous identiques, la réponse sera n **. (J'avais mal parce que j'avais réglé inf à ans correctement.)
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