编制函数,将字符串中连续的相同字符仅保留 1 个
时间: 2024-02-28 09:56:48 浏览: 21
好的,我可以帮你编写这个函数。以下是一个 Python 版本的示例代码:
```python
def remove_duplicates(s):
if len(s) < 2:
return s
result = [s[0]]
for i in range(1, len(s)):
if s[i] != s[i-1]:
result.append(s[i])
return ''.join(result)
```
在上面的代码中,`remove_duplicates` 函数接受一个字符串参数 `s`,并返回一个去除连续相同字符的新字符串。该函数首先检查字符串长度是否小于2,如果是,则直接返回原字符串。否则,使用一个列表 `result` 来保存去重后的字符。循环遍历字符串,如果当前字符和前一个字符不同,则将其添加到 `result` 中。最后,使用 `join` 方法将 `result` 中的字符连接成一个新的字符串返回。
你可以像下面这样使用该函数:
```python
s = 'aaabbbccccddee'
result = remove_duplicates(s)
print(result) # 输出:abcde
```
希望这个函数可以帮到你!
相关问题
编制函数,将字符串中连续的相同字符仅保留 1 个c语言
可以使用一个循环来遍历字符串,检查当前字符和前一个字符是否相同,如果相同则将其删除,否则保留。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <string.h>
void remove_duplicates(char *str) {
int len = strlen(str);
int i, j;
for (i = 1, j = 1; i < len; i++) {
if (str[i] != str[i - 1]) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[] = "aaabbbcccdddeee";
remove_duplicates(str);
printf("%s\n", str); // 输出:abcde
return 0;
}
```
在上面的代码中,`remove_duplicates` 函数接受一个字符串参数,并在原地修改字符串,使得连续的相同字符仅保留1个。该函数首先计算字符串的长度,然后使用两个指针 `i` 和 `j` 来遍历字符串。指针 `i` 从第二个字符开始,指针 `j` 记录输出字符串的长度。如果当前字符和前一个字符不同,则将其保存在 `j` 指向的位置,并将 `j` 加1。最后,将字符串的结束符 `\0` 添加到输出字符串的末尾。
用C语言编制函数,将字符串中连续的相同字符仅保留1个(字符串"a bb cccd ddd ef"处理后为"a b cd d ef")
可以使用如下的C语言函数来实现字符串中连续的相同字符仅保留1个的功能:
```c
#include<stdio.h>
#include<string.h>
void removeDuplicateChars(char* str) {
int i, j, len;
len = strlen(str);
for(i=0; i<len; i++) {
while(str[i] == str[i+1]) {
for(j=i+1; j<len; j++) {
str[j] = str[j+1];
}
len--;
}
}
}
int main() {
char str[] = "a bb cccd ddd ef";
removeDuplicateChars(str);
printf("%s\n", str);
return 0;
}
```
这个函数首先通过循环遍历字符串中的每一个字符,然后判断当前字符是否和下一个字符相同,如果相同就将下一个字符删除,并且将字符串长度减1,直到当前字符和下一个字符不相同为止。最终得到的字符串就是连续的相同字符仅保留1个的形式。