本文主要是介绍力扣(2024.06.17),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 36——有效的数独
请你判断一个 9x9
的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
- 数字
1-9
在每一行只能出现一次。 - 数字
1-9
在每一列只能出现一次。 - 数字
1-9
在每一个以粗实线分隔的3x3
宫内只能出现一次。(请参考示例图)
注意:
- 一个有效的数独(部分已被填充)不一定是可解的。
- 只需要根据以上规则,验证已经填入的数字是否有效即可。
- 空白格用
'.'
表示。
标签:数组,哈希表,矩阵
代码:
class Solution:def isValidSudoku(self, board: List[List[str]]) -> bool:hang = []lie = []gong = []for i in range(9):hang.append([])lie.append([])gong.append([])for i in range(9):for j in range(9):num = board[i][j]if num == ".":continueelse:if num in hang[i] or num in lie[j] or num in gong[i // 3 * 3 + j // 3]:return Falseelse:hang[i].append(num)lie[j].append(num)gong[i // 3 * 3 + j // 3].append(num)return True
2. 37——解数独
编写一个程序,通过填充空格来解决数独问题。
数独的解法需遵循如下规则:
- 数字
1-9
在每一行只能出现一次。 - 数字
1-9
在每一列只能出现一次。 - 数字
1-9
在每一个以粗实线分隔的3x3
宫内只能出现一次。(请参考示例图)
数独部分空格内已填入了数字,空白格用 '.'
表示。
标签:数组,哈希表,回溯,矩阵(目前不会)
代码:
3. 38——外观数列
「外观数列」是一个数位字符串序列,由递归公式定义:
countAndSay(1) = "1"
countAndSay(n)
是countAndSay(n-1)
的行程长度编码。
行程长度编码(RLE)是一种字符串压缩方法,其工作原理是通过将连续相同字符(重复两次或更多次)替换为字符重复次数(运行长度)和字符的串联。例如,要压缩字符串 "3322251"
,我们将 "33"
用 "23"
替换,将 "222"
用 "32"
替换,将 "5"
用 "15"
替换并将 "1"
用 "11"
替换。因此压缩后字符串变为 "23321511"
。
给定一个整数 n
,返回外观数列的第 n
个元素。
标签:字符串,双指针
代码:
class Solution:def countAndSay(self, n: int) -> str:def count(num_str):slow = 0fast = 0res = ''while fast < len(num_str):if num_str[slow] != num_str[fast]:res = res + str(fast - slow) + num_str[slow]slow = fastelse:fast = fast + 1res = res + str(fast - slow) + num_str[slow]return resres = '1'if n == 1:return reselse:for i in range(n - 1):res = count(res)return res
这篇关于力扣(2024.06.17)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!