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
L'affectation est Sudoku (Sudoku), le nom du site est kata (type), la notation est kyu (classe), ce site semble aimer le Japon Au fait, il semble y avoir un service appelé Kumite.
Règles de l'allemand C'est un gars qui organise 1 à 9 dans des zones verticales, horizontales, 3 * 3.
[[1, 3, 2, 5, 7, 9, 4, 6, 8]
,[4, 9, 8, 2, 6, 1, 3, 7, 5]
,[7, 5, 6, 3, 8, 4, 2, 1, 9]
,[6, 4, 3, 1, 5, 8, 7, 9, 2]
,[5, 2, 1, 7, 9, 3, 8, 4, 6]
,[9, 8, 7, 4, 2, 6, 5, 3, 1]
,[2, 1, 4, 9, 3, 5, 6, 8, 7]
,[3, 6, 5, 8, 1, 7, 9, 2, 4]
,[8, 7, 9, 6, 4, 2, 1, 5, 3]]
agvz
[[1, 3, 2, 5, 7, 9, 4, 6, 8]
,[4, 9, 8, 2, 6, 1, 3, 7, 5]
,[7, 5, 6, 3, 8, 4, 2, 1, 9]
,[6, 4, 3, 1, 5, 8, 7, 9, 2]
,[5, 2, 1, 7, 9, 3, 8, 4, 6]
,[9, 8, 7, 4, 2, 6, 5, 3, 1]
,[2, 1, 4, 9, 3, 5, 6, 8, 7]
,[3, 6, 5, 8, 1, 7, 9, 2, 4]
,[8, 7, 9, 6, 4, 2, 1, 3, 5]]
#5 #3 #Vu verticalement 5,3 est manquant
My Answer
import numpy as np
def done_or_not(board):
sets = set([i for i in range(1,10)])
board = np.array(board)
if not [1 for j in range(9) if not set(board[j]) == sets or not set(board[:,j]) == sets] ==[]:
return 'Try again!'
if not [1 for i in range(9) if not set(board[i//3*3:i//3*3+3,i%3*3:(i%3*3)+3].flatten()) == sets ] ==[]:
return 'Try again!'
return 'Finished!'
En tant qu'ensembles = {ensembles de 1 à 9} La colonne fait-elle partie de cet ensemble? Est-ce que chaque zone est cet ensemble? C'est comme vérifier chacun J'ai l'impression que le code est devenu semblable à Codewars ... Je ne sais pas si c'est bon ou mauvais parce que ce n'est pas lisible
Best Answer
import numpy as np
def done_or_not(aboard): #board[i][j]
board = np.array(aboard)
rows = [board[i,:] for i in range(9)]
cols = [board[:,j] for j in range(9)]
sqrs = [board[i:i+3,j:j+3].flatten() for i in [0,3,6] for j in [0,3,6]]
for view in np.vstack((rows,cols,sqrs)):
if len(np.unique(view)) != 9:
return 'Try again!'
return 'Finished!'
Qu'est-ce que c'est ... C'est vraiment facile à voir Organisez les carrés verticaux et horizontaux dans un tableau à deux dimensions avec np.vstack () Vous voyez combien de types d'éléments il y a dans np.unique () J'ai essayé de faire la même chose avec len (set ()), mais il y a une fonctionnalité tellement utile Je ferai de mon mieux pour écrire un code simple et facile à lire, pas mignon.
J'ai commencé à étudier le CSS et le HTML
Recommended Posts