def count_substring(s): if not s: return {} res = {} start = 0 for i in range(1, len(s)): if s[i] != s[i-1]: res[s[i-1]] = i - start start = i res[s[-1]] = len(s) - start return res
时间: 2024-03-11 20:51:24 浏览: 59
NX二次开发UF-DRF-count-text-substring 函数介绍
这个代码和我之前给你的代码几乎一模一样,只是少了一个特判空字符串的语句。如果输入为空字符串,我们应该返回一个空字典,而不是继续执行程序可能会引发错误。
下面是加上特判空字符串的代码:
```python
def count_substring(s):
if not s:
return {}
res = {}
start = 0
for i in range(1, len(s)):
if s[i] != s[i-1]:
res[s[i-1]] = i - start
start = i
res[s[-1]] = len(s) - start
return res
```
这个函数接受一个字符串 `s`,并返回一个字典,其中键是连续子串的单一字母,值是该连续子串重复的个数。
该函数首先检查输入字符串是否为空,如果是,则返回一个空字典。然后,它遍历字符串中的每个字符,并用一个变量 `start` 记录当前连续子串的起始位置。
每当当前字符和前一个字符不相同时,就说明前一个字符是一个独立的连续子串。这时,我们记录下来它的长度,即当前位置减去起始位置,然后更新起始位置为当前位置。
最后,我们还需要单独处理最后一个字母,因为它可能也是一个独立的连续子串。
最终,我们得到的字典就是题目要求的输出。
阅读全文