这个字符串中有多少子串是某一天合法的记录序列
时间: 2024-05-04 09:18:11 浏览: 62
一个合法的记录序列指的是长度为8的仅由数字和冒号组成的字符串,且前两个字符表示小时,中间两个字符表示分钟,后两个字符表示秒钟。合法的记录序列必须满足小时在[00,23]范围内,分钟和秒钟在[00,59]范围内。
我们可以使用双重循环枚举所有可能的子串,然后判断其是否为合法的记录序列。
具体实现可以参考下面的代码:
```python
def count_legal_records(s):
count = 0
for i in range(len(s)):
for j in range(i+1, len(s)+1):
if j-i == 8:
sub = s[i:j]
if sub[0:2].isdigit() and sub[2] == ":" and sub[3:5].isdigit() and sub[5] == ":" and sub[6:].isdigit():
if 0 <= int(sub[0:2]) <= 23 and 0 <= int(sub[3:5]) <= 59 and 0 <= int(sub[6:]) <= 59:
count += 1
return count
```
该函数的时间复杂度为 $O(n^2)$,其中 $n$ 是字符串的长度。
阅读全文