文章目录
- 一、01.26 周四 大年初五
- 1.1)Python的一道算法题目
- 1.1.1) 题目
- 1.1.2) 解答
- 1.1.3) 知识点
一、01.26 周四 大年初五
1.1)Python的一道算法题目
1.1.1) 题目
2437. 有效时间的数目
给你一个长度为 5 的字符串 time ,表示一个电子时钟当前的时间,格式为 “hh:mm” 。最早 可能的时间是 “00:00” ,最晚 可能的时间是 “23:59” 。
在字符串 time 中,被字符 ? 替换掉的数位是 未知的 ,被替换的数字可能是 0 到 9 中的任何一个。
请你返回一个整数 answer ,将每一个 ? 都用 0 到 9 中一个数字替换后,可以得到的有效时间的数目。
示例 1:
输入:time = “?5:00” 输出:2 解释:我们可以将 ? 替换成 0 或 1 ,得到 “05:00” 或者 “15:00”
。注意我们不能替换成 2 ,因为时间 “25:00” 是无效时间。所以我们有两个选择。
1.1.2) 解答
def count(time: str, limit: int) -> int:
ans = 0
for i in range(limit):
if all(t == '?' or t == c for t, c in zip(time, f"{i:02d}")):
ans += 1
return ans
class Solution:
def countTime(self, time: str) -> int:
return count(time[:2], 24) * count(time[3:], 60)
1.1.3) 知识点
- python中的 all函数指的是 都为真的话才为 true
- python 中的 zip函数,类似于压缩性质
- python 中的字符串切割是 左闭右开的,比如 time[:2] 代表从 index 0到 2(包含0,不包含2)
- python中的 字符串格式化,比如
f'{0:02d}'
代表 ‘00’ - python中的 得到类的对象,不是使用的 new的关键词
- python的类方法是 cls参数, https://haicoder.net/python/python-class-method.html
def classMethod(cls, args) 有别于 对象方法中的 self
def count(time: str, limit: int) -> int:
ans = 0
for i in range(limit):
if all(t == '?' or t == c for t, c in zip(time, f"{i:02d}")):
ans += 1
return ans
class Solution:
def countTime(self, time: str) -> int:
return count(time[:2], 24) * count(time[3:], 60)
solution = Solution()
solution.countTime('?5:00')
- 相关的设置:
1) vscode 的 python 设置:
设置 vscode 中使用 python3:
参考: https://www.cnblogs.com/kadycui/p/9069836.html - vscode 调试 python代码
2) 获取python的配置
import platform
print platform.python_version()