完成代码,输入为一个只包含字母的字符串s。要求返回一个字典,计算由单一字母构成的连续子串的长度,键是连续字串的单一字母,值是该连续字串重复的个数. 如果同一单一字母拥有多个连续字串,则值为最后一个连续字串的字母重复个数,例如对于‘aaaaaabaaa’,返回值a的个数计为3。 示例: 输入:'helloaaabccd' 输出:{'l': 2, 'a': 3, 'c': 2} 限制: 1 <= S.length <= 1000 S[i] 仅由小写英文字母组成。
时间: 2024-03-11 22:51:39 浏览: 124
输出一个字符串的全部子串.docx
以下是Python的实现代码:
```python
def count_substring(s):
if not s:
return {}
res = {}
prev = s[0]
count = 1
for i in range(1, len(s)):
if s[i] == prev:
count += 1
else:
res[prev] = count
prev = s[i]
count = 1
res[prev] = count
return res
```
解释:
1. 首先定义一个空字典res,用于存储结果。
2. 如果输入字符串s为空,则直接返回空字典。
3. 定义一个变量prev,用于存储前一个遍历到的字符,初始值为s的第一个字符。
4. 定义一个变量count,用于存储当前的连续子串长度,初始值为1。
5. 从s的第二个字符开始遍历,如果当前字符与前一个字符相同,则count加1,表示当前连续子串长度加1;否则,将prev对应的计数结果存到res中,更新prev为当前字符,count重置为1。
6. 遍历完整个字符串后,还需要将最后一个连续子串的计数结果存到res中。
7. 返回res作为最终结果。
阅读全文