Compare commits

...

2 Commits

Author SHA1 Message Date
8d5f40d02b pass 383 easy 2024-05-24 23:28:39 +02:00
713e1c9cea pass 36 easy 2024-05-24 23:17:09 +02:00
2 changed files with 101 additions and 0 deletions

74
36-240525-pass/main.py Normal file
View File

@ -0,0 +1,74 @@
class Solution:
def isValidSudoku(self, board: list[list[str]]) -> bool:
plates = []
for l in board:
plates.append([])
for ch_num in l:
if ch_num.isalnum():
num = int(ch_num[0])
else:
num = -1
plates[-1].append(num)
def judge_1(plates, i, j):
t = plates[i][j]
for idx, num in enumerate(plates[i]):
if idx == j: continue
if num == t: return False
return True
def judge_2(plates, i, j):
t = plates[i][j]
l = []
for idx in range(0, 9):
l.append(plates[idx][j])
for idx, num in enumerate(l):
if idx == i: continue
if num == t: return False
return True
def judge_3(plates, i, j):
row = i // 3 * 3
col = j // 3 * 3
l = []
for idx1 in range(row, row + 3):
for idx2 in range(col, col + 3):
if idx1 == i and idx2 ==j: continue
l.append(plates[idx1][idx2])
for idx,num in enumerate(l):
if num == plates[i][j]:
return False
return True
for i in range(0, 9):
for j in range(0, 9):
if plates[i][j] == -1: continue
if not judge_1(plates, i, j):
return False
if not judge_2(plates, i, j):
return False
if not judge_3(plates, i, j):
return False
return True
board = [["5","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
sol = Solution()
print(sol.isValidSudoku(board=board))
board = [["8","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
print(sol.isValidSudoku(board=board))

27
383-240524-pass/main.py Normal file
View File

@ -0,0 +1,27 @@
class Solution:
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
ran_dic = {}
mag_dic = {}
for l in ransomNote:
if l not in ran_dic:
ran_dic[l] = 1
else:
ran_dic[l] += 1
for l in magazine:
if l not in mag_dic:
mag_dic[l] = 1
else:
mag_dic[l] += 1
print(ran_dic)
print(mag_dic)
for key in ran_dic:
if key not in mag_dic:
return False
if ran_dic[key] > mag_dic[key]:
return False
return True
sol = Solution()
print(sol.canConstruct("a", "b"))
print(sol.canConstruct("aa", "ab"))
print(sol.canConstruct("aa", "aab"))