2023华为od机试b卷【增强字符串】
时间: 2023-08-11 07:02:25 浏览: 188
题目要求编写一个函数,对于给定的字符串s,将相邻重复的字符用它们的个数和字符本身表示。
例如,给定字符串s = "aaabbbccc",函数应该返回字符串"3a3b3c"。
要解决这个问题,我们可以使用两个指针来遍历字符串。一个指针指向当前字符,另一个指针用来记录重复字符的个数。当遇到不同的字符或遍历到字符串末尾时,将重复字符的个数和字符本身添加到结果字符串中。
具体步骤如下:
1. 初始化一个空字符串result,用来存放结果。
2. 设置两个指针,一个指向当前字符指针cur,一个用来记录重复字符的指针count,初始值为1。
3. 从第二个字符开始,遍历整个字符串。
4. 如果当前字符等于前一个字符,则将count加1。
5. 如果当前字符不等于前一个字符,则将重复字符的个数count和前一个字符添加到result中,并将count重置为1。
6. 遍历结束后,将最后一个字符和重复字符的个数count添加到result中。
7. 返回结果字符串result。
以下是具体的实现代码:
```python
def enhance_string(s):
result = ""
cur = 0
count = 1
for i in range(1, len(s)):
if s[i] == s[cur]:
count += 1
else:
result += str(count) + s[cur]
cur = i
count = 1
result += str(count) + s[cur]
return result
```
测试样例:
```python
s = "aaabbbccc"
print(enhance_string(s)) # 输出"3a3b3c"
```
通过以上步骤,我们可以成功地将字符串中的相邻重复字符替换为它们的个数和字符本身。
阅读全文