[Python] Connaissances de base utilisées dans AtCoder

Les débutants d'AtCoder peuvent résoudre des problèmes Prenez note de toute connaissance qui pourrait être utile.

contribution

Réception de diverses entrées.

Recevoir des lettres

S = input()

Recevoir des numéros

N = int(input())

Recevoir des nombres vierges

A,B = map(int,input().split())

Recevoir le nombre d'entrées et recevoir le nombre d'entrées L'écriture en utilisant des crochets est appelée "notation d'inclusion"

N = int(input()) #Nombre d'entrées
l = list(int(input()) for _ in range(N)) #Obtenir N entrées numériques sous forme de liste
#Ou
l = [int(input()) for _ in range(N)] #Obtenir N entrées numériques sous forme de liste

Reçoit le nombre d'entrées et reçoit des nombres vides pour ce nombre de fois

Q = int(input())
L = [0]*Q
R = [0]*Q

for i in range(Q):
    L[i], R[i] = map(int, input().split())

#Ou
l = list(list(map(int, input().split())) for _ in range(Q))
l = [list(map(int,(input().split()))) for _ in range(Q)]

Si vous souhaitez modifier la chaîne ultérieurement, recevez-la sous forme de liste de caractères

Python #contribution
T = list(input())
T[0] = "p"
print("".join(T))
python

production

Liste de sortie avec des blancs

l = [1,2,3]
print(*l)
1 2 3

Liste de sortie sans espaces join

l = [1,2,3]
l = map(str,l) #Puisque la jointure est pour une chaîne, convertissez-la en chaîne
print("".join(l))
123

format

name = "Suzuki"
height = 170
weight = 60

print("{0}Est grand{1}cm, poids{2}kg".format(name,height,weight))
M. Suzuki mesure 170 cm et pèse 60 kg.

Répéter la chaîne, multiplier la chaîne

s = "Python"
print(s*3)
PythonPythonPython

Opérateur triangulaire

flag = 1

print("Yes" if flag else "No")
print("Yes" if not flag else "No")
Yes
No

Calculer la formule à partir de la chaîne eval

print(eval("1+2"))
3

Somme de chaque chiffre

Convertissez un nombre en chaîne de caractères et divisez-le en nombres pour chaque chiffre pour trouver la somme

x = 1357

sum(int(i) for i in str(x))
#Ou
sum(list(map(int, str(x))))

Valeur absolue

abs(-2)

Marchandise et reste

x = 10; y = 3

q = x // y
mod = x % y
q, mod = divmod(x, y)

liste

Trier Trier par ordre décroissant

l = [1,3,5,2,4]

l.sort()
l2 = sorted(l) #Mettez une autre variable

l.sort(reverse = True) #Trier par ordre décroissant
l2 = sorted(l, reverse = True) #Trier par ordre décroissant et mettre dans une autre variable

Trier par deuxième élément

l = [[1,5],[2,2],[3,4]]

l.sort(key=lambda x:x[1])
print(l)
[[2, 2], [3, 4], [1, 5]]

Opération de tranche Liste de sortie dans l'ordre inverse

l = [1,2,3,4,5]
print(l[2:]) #Deuxième et suivants
print(l[:2]) #Jusqu'à la seconde
print(l[2:4]) #Du 2ème au 4ème
print(l[-2:]) #Deux à l'arrière
print(l[::-1]) #Liste de sortie dans l'ordre inverse
print(l[::2]) #Passer un
print(l[1::2]) #Passer un après le second
[3, 4, 5]
[1, 2]
[3, 4]
[4, 5]
[5, 4, 3, 2, 1]
[1, 3, 5]
[2, 4]

enumerate Obtenez l'index de la liste et l'élément en même temps

l = ["langue nationale","Math","Science","société","Anglais"]

#Le deuxième argument est l'index de départ
for i,subject in enumerate(l, 1):
    print(str(i)+"Le second est"+subject)
Le premier est la langue nationale
Le second est les mathématiques
Le troisième est la science
Quatrièmement, la société
Le cinquième est l'anglais

Engagement maximum, multiple commun minimum

from fractions import gcd

x = 8
y = 12

gcd(x,y) #Engagement maximum
(x*y)//gcd(x,y) #Multiple commun minimum

Séquence, combinaison

from itertools import permutations, combinations

balls = [1, 2, 3]
print(list(permutations(balls, 3)))  #permutation
print(list(combinations(balls, 2)))  #combinaison
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
[(1, 2), (1, 3), (2, 3)]

Code ASCII ord, chr

【ord】 Convertir en code ASCII 【chr】 Convertir du code ASCII en caractères

151 A - Next Alphabet コメント 2020-02-08 172153.png

c = input()
print(chr(ord(c) + 1))

Jugement du nombre premier

Pour déterminer le nombre premier, vérifiez s'il existe un nombre divisible jusqu'à $ \ sqrt {n} $.

def is_prime(n):
    if n == 1:
        return False
    for i in range(2,int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

Distance entre deux points

import numpy as np

a = np.array((1,2))
b = np.array((5,6))

distance = np.linalg.norm(a-b)

Initialisation à l'infini

f_inf = float('inf')
f_inf_minus = -float('inf')

Supprimer les valeurs en double

l = [4,2,1,3,4,3,2]

print(set(l))
{1, 2, 3, 4}

Vérifiez le nombre d'occurrences de l'alphabet

import string

val_str = "hello everyone"

d = {}

alphas = string.ascii_lowercase
for key in alphas:
    d[key] = 0

for key in val_str:
    if key in alphas:
        d[key] += 1

for i in d:
    print("{0} : {1}".format(i,d[i]))
a : 0
b : 0
c : 0
d : 0
e : 4
f : 0
g : 0
h : 1
i : 0
j : 0
k : 0
l : 2
m : 0
n : 1
o : 2
p : 0
q : 0
r : 1
s : 0
t : 0
u : 0
v : 1
w : 0
x : 0
y : 1
z : 0

En examinant uniquement ce qui apparaît

import string
from collections import defaultdict
val_str = "hello everyone"

d = defaultdict(int)

for key in val_str:
    d[key] += 1

for i in d:
    print("{0} : {1}".format(i,d[i]))
h : 1
e : 4
l : 2
o : 2
  : 1
v : 1
r : 1
y : 1
n : 1

Recherche en 2 minutes

146 C - Buy an Integer image.png

A,B,Z = [int(i) for i in input().split()]

max = 10 ** 9 + 1
min = 0

while max - min > 1:
    avr = (max + min) // 2
    sum = A * avr + B * len(str(avr))
    if sum <= Z:
        min = avr
    else:
        max = avr

print(min)

Indice de sortie par ordre de score

Sortie à l'aide de dict

l = [7,6,13,10,7]

dic = {}
for i,score in enumerate(l):
    dic[i+1] = score

dic = sorted(dic.items(), key=lambda x:x[1], reverse = True)

for i in dic:
    print("{0}, score:{1}".format(i[0],i[1]))
3, score:13
4, score:10
1, score:7
5, score:7
2, score:6

Au contraire, le classement est sorti

l = [7,6,13,10,7]
l2 = sorted(l, reverse = True)

for i in l:
    print(l2.index(i) + 1)
3
5
1
2
3

Recommended Posts

[Python] Connaissances de base utilisées dans AtCoder
AtCoder # 36 quotidien avec Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 7 tous les jours avec Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
Tri de base en Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 en Python
Daily AtCoder # 47 avec Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Daily AtCoder # 20 en Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
AtCoder # 1 tous les jours avec Python
Connaissance de base de Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en Python
Daily AtCoder # 12 en Python
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
Daily AtCoder # 46 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
Atcoder ABC164 A-C en Python
Note d'entrée Python dans AtCoder
Atcoder ABC167 A-D en Python
Atcoder ABC165 A-D en Python
Atcoder ABC166 A-E en Python