Au codewars kata, vous pouvez apprendre la programmation et l'anglais pratique en même temps. C'est un site génial. Si vous avez un compte github, vous pouvez commencer en 30 secondes Si vous êtes intéressé, commencez maintenant commencez ici
En passant, vous pouvez défier dans de nombreux langages autres que python
Fonction du nombre de gâteaux pouvant être préparés
Faire des def cakes (recette, disponible):
cakes({flour: 500, sugar: 200, eggs: 1}, {flour: 1200, sugar: 1200, eggs: 5, milk: 200})
2
{apples: 3, flour: 300, sugar: 150, milk: 100, oil: 100}, {sugar: 500, flour: 2000, milk: 2000})
0
MyAnswer
list = []
for key,value in recipe.items():
if key in available:
list.append(available[key]//value)
else:
list.append(0)
return min(list)
Il semble que vous puissiez obtenir le contenu avec items () si vous gg avec le premier type de dictionnaire, alors obtenez-le avec pour Dans chaque matière (clé), enregistrez la matière // recette dans la liste S'il n'y a pas de matériau, enregistrez 0 Changer la valeur minimale de la liste
Code simple
BestAnswers
def cakes(recipe, available):
return min(available.get(k, 0)/recipe[k] for k in recipe)
Il semble que vous pouvez obtenir la clé avec for k in dict
Obtenir la valeur avec dict.get (k, 0), obtenir le deuxième argument s'il n'y a pas de clé
Presque la même chose avec min (available.get (k, 0) // v pour k, v dans recette.items ())
Je dois utiliser dict.get
return min ([disponible [i] // recette [i] si i est disponible sinon 0 pour i dans la recette])
et si peut être inclus
Si vous pensez que le jeu Tic Tac est quelque chose comme le jeu OX Si vous passez le tableau et classifiez les résultats, c'est OK -1: incomplet 1: X gagne 2: O gagne 0: Draw (c'est un jeu de chat) Cela semble difficile ...
[[0, 0, 1], [0, 1, 2], [2, 1, 0]]
-1
MyAnswer
def ox(board):
lines = []
for i in range(3):
lines.append(board[i])
lines.append([board[j][i] for j in range(3)])
lines.append([board[0][0],board[1][1],board[2][2]])
lines.append([board[0][2],board[1][1],board[2][0]])
yetfin = 0
for k in range(8):
if lines[k] == [1,1,1] or lines[k] == [2,2,2]:
return lines[k][0]
if set(lines[k]) == {0,1} or set(lines[k]) == {0,2} :
yetfin = 1
if yetfin:
return -1
else:
return 0
C'est un programme qui enregistre les valeurs numériques de chacune des 8 colonnes verticales et horizontales en lignes, puis recherche lequel des éléments suivants Victoire: [111] [222] Incomplet: {0,1} {0,2} Dessiner: autre que ça
BestAnswers
def ox2(board):
for i in range(0,3):
if board[i][0] == board[i][1] == board[i][2] != 0:
return board[i][0]
elif board[0][i] == board[1][i] == board[2][i] != 0:
return board[0][i]
if board[0][0] == board[1][1] == board[2][2] != 0:
return board[0][0]
elif board[0][2] == board[1][1] == board[2][0] != 0:
return board[0][0]
elif 0 not in board[0] and 0 not in board[1] and 0 not in board[2]:
return 0
else:
return -1
Ce que vous faites est presque le même sauf que vous n'avez pas fait de lignes avant la décision gagnante (C'est intelligent car cela économise de la mémoire) Cependant, je cherche juste 0 dans le jugement de tirage au sort ... En d'autres termes XXO OOX XO_ Le comportement a changé avec un jeu d'empilement avec 0 comme
board = [[1,1,2],
[2,2,1],
[1,2,0]]
print('MyAnswer:',ox(board))
print('BestPractice:',ox2(board))
MyAnswer: 0
BestPractice: -1
Ce sera.
cette? Si vous regardez attentivement l'énoncé du problème
-1 if the board is not yet finished (there are empty spots),
En d'autres termes, s'il y en a même un vide, il est incomplet, ce dernier semble donc être la bonne pratique.
Vers midi le samedi, je n'ai pas envie de quitter la maison avant midi, donc je ne peux rien manger
Modèle personnel
Q
MyAnswer
BestAnswers
Recommended Posts