[PYTHON] AtCoder Beginner Contest 043 Revue des questions précédentes

Temps requis

スクリーンショット 2020-01-27 18.26.37.png

Problème A

Trouvez simplement le total.

answerA.py


n=int(input())
print(n*(n+1)//2)

Problème B

Ajoutez simplement 0,1 et supprimez avec B.

answerB.py


ans=""
s=input()
for i in s:
    if i=="0":
        ans+="0"
    elif i=="1":
        ans+="1"
    else:
        if i!=[]:
            ans=ans[:-1]
print(ans)

Problème C

Dans le cas de -100 ou moins et de 100 ou plus, -100 et 100 sont respectivement le minimum, alors recherchez toutes les valeurs qui changent de -100 à 100.

answerC.py


n=int(input())
a=[int(i) for i in input().split()]
ans=10000000000000
for i in range(-100,101):
    ans_sub=0
    for j in range(n):
        ans_sub+=(a[j]-i)**2
    ans=min(ans,ans_sub)
print(ans)

Problème D

Premièrement, les chaînes non équilibrées ont la même majorité. De plus, (** pendant l'expérience **) ** j'ai trouvé que les sous-chaînes non équilibrées sont cachées à l'intérieur des chaînes non équilibrées **. Par exemple, l'échantillon nécessaire contient des sous-chaînes non équilibrées telles que nee et ede, mais ee in nee est également une sous-chaîne non équilibrée. Par conséquent, comme il est seulement nécessaire de sortir une sous-chaîne déséquilibrée, j'ai pensé à ce que la sous-chaîne est la plus petite unité. Premièrement, pour une sous-chaîne de longueur 2, elle devient une sous-chaîne déséquilibrée lorsque les deux caractères sont identiques. Ensuite, on peut voir que deux caractères sont également inclus dans la sous-chaîne de longueur 3, et si les caractères sont continus, la sous-chaîne de longueur 2 sera également une sous-chaîne déséquilibrée. Je vais. En d'autres termes, en supposant que la plus petite sous-chaîne déséquilibrée était présente, nous pouvons voir que la plus petite est susceptible d'avoir les mêmes caractères aux deux extrémités (ce qui peut être indiqué par l'absurdité lorsqu'elles n'ont pas les mêmes caractères). En outre, il est intuitivement compris que cette chaîne de caractères non équilibrée n'est pas la plus petite chaîne de caractères non équilibrée lorsque les mêmes caractères que les deux extrémités sont présents dans la chaîne de caractères non équilibrée. Par conséquent, il suffit qu'il y ait une chaîne de caractères non équilibrée (modèle tel que aa ou aba) qui a le même caractère aux deux extrémités et a une longueur de 2 ou plus, et cela doit être produit. De plus, ** parce que la majorité sont les mêmes caractères, les mêmes caractères sont toujours «adjacents» ou «tous les autres» **, ce qui prend en charge cette intuition. De plus, s'il n'y a pas de modèle comme ** aa ou aba, il y aura au moins deux caractères différents entre les mêmes caractères **, il n'est donc pas toujours possible de créer une chaîne déséquilibrée. Je peux dire. La discussion ci-dessus est mise en œuvre ci-dessous. Le code du premier bachacon était horrible, alors je l'ai réécrit.

Il est souvent bon d'expérimenter avec des chaînes de caractères pour avoir une idée de leurs caractéristiques!

Cette fois, le problème est de se concentrer sur la sous-chaîne "minimum"!

answerD.py


def groupby(a):
    a2=[[a[0],1]]
    for i in range(1,len(a)):
        if a2[-1][0]==a[i]:
            a2[-1][1]+=1
        else:
            a2.append([a[i],1])
    return a2
s1=list(input())
l=len(s1)
s2=groupby(s1)
now=0
for i in s2:
    now+=i[1]
    if i[1]!=1:
        print(str(now-i[1]+1)+" "+str(now))
        break
else:
    if l==2:
        print("-1 -1")
    else:
        for i in range(l-2):
            if s1[i]==s1[i+2]:
                print(str(i+1)+" "+str(i+3))
                break
        else:
            print("-1 -1")

answerD_shorter_faster.py


from sys import exit
s=input()
l=len(s)
for i in range(l-2):
    if s[i]==s[i+2]:
        print(str(i+1)+" "+str(i+3))
        exit()
    if s[i]==s[i+1]:
        print(str(i+1)+" "+str(i+2))
        exit()
if s[l-2]==s[l-1]:
    print(str(l-1)+" "+str(l))
else:
    print("-1 -1")

Recommended Posts

AtCoder Beginner Contest 102 Revue des questions précédentes
AtCoder Beginner Contest 072 Revue des questions précédentes
AtCoder Beginner Contest 085 Revue des questions précédentes
AtCoder Beginner Contest 062 Revue des questions précédentes
AtCoder Beginner Contest 113 Revue des questions précédentes
AtCoder Beginner Contest 074 Revue des questions précédentes
AtCoder Beginner Contest 051 Revue des questions précédentes
AtCoder Beginner Contest 127 Revue des questions précédentes
AtCoder Beginner Contest 119 Revue des questions précédentes
AtCoder Beginner Contest 151 Revue des questions précédentes
AtCoder Beginner Contest 075 Revue des questions précédentes
AtCoder Beginner Contest 054 Revue des questions précédentes
AtCoder Beginner Contest 110 Revue des questions précédentes
AtCoder Beginner Contest 117 Revue des questions précédentes
AtCoder Beginner Contest 070 Revue des questions précédentes
AtCoder Beginner Contest 112 Revue des questions précédentes
AtCoder Beginner Contest 076 Revue des questions précédentes
AtCoder Beginner Contest 089 Revue des questions précédentes
AtCoder Beginner Contest 069 Revue des questions précédentes
AtCoder Beginner Contest 079 Revue des questions précédentes
AtCoder Beginner Contest 067 Revue des questions précédentes
AtCoder Beginner Contest 093 Revue des questions précédentes
AtCoder Beginner Contest 046 Revue des questions précédentes
AtCoder Beginner Contest 123 Revue des questions précédentes
AtCoder Beginner Contest 049 Revue des questions précédentes
AtCoder Beginner Contest 078 Revue des questions précédentes
AtCoder Beginner Contest 081 Revue des questions précédentes
AtCoder Beginner Contest 047 Revue des questions précédentes
AtCoder Beginner Contest 060 Revue des questions précédentes
AtCoder Beginner Contest 104 Revue des questions précédentes
AtCoder Beginner Contest 057 Revue des questions précédentes
AtCoder Beginner Contest 126 Revue des questions précédentes
AtCoder Beginner Contest 090 Revue des questions précédentes
AtCoder Beginner Contest 103 Revue des questions précédentes
AtCoder Beginner Contest 061 Revue des questions précédentes
AtCoder Beginner Contest 059 Revue des questions précédentes
AtCoder Beginner Contest 044 Revue des questions précédentes
AtCoder Beginner Contest 083 Revue des questions précédentes
AtCoder Beginner Contest 048 Revue des questions précédentes
AtCoder Beginner Contest 124 Revue des questions précédentes
AtCoder Beginner Contest 116 Revue des questions précédentes
AtCoder Beginner Contest 097 Revue des questions précédentes
AtCoder Beginner Contest 088 Revue des questions précédentes
AtCoder Beginner Contest 053 Revue des questions précédentes
AtCoder Beginner Contest 094 Revue des questions précédentes
AtCoder Beginner Contest 107 Revue des questions précédentes
AtCoder Beginner Contest 071 Revue des questions précédentes
AtCoder Beginner Contest 064 Revue des questions précédentes
AtCoder Beginner Contest 082 Revue des questions précédentes
AtCoder Beginner Contest 084 Revue des questions précédentes
AtCoder Beginner Contest 068 Revue des questions précédentes
AtCoder Beginner Contest 043 Revue des questions précédentes
AtCoder Beginner Contest 098 Revue des questions précédentes
AtCoder Beginner Contest 114 Revue des questions précédentes
AtCoder Beginner Contest 045 Revue des questions précédentes
AtCoder Beginner Contest 120 Revue des questions précédentes
AtCoder Beginner Contest 108 Revue des questions précédentes
AtCoder Beginner Contest 106 Revue des questions précédentes
AtCoder Beginner Contest 122 Revue des questions précédentes
AtCoder Beginner Contest 125 Revue des questions précédentes
AtCoder Beginner Contest 109 Revue des questions précédentes