字符串删除重复字符
时间: 2023-07-25 15:08:55 浏览: 59
可以使用哈希表来实现字符串删除重复字符。具体步骤如下:
1. 创建一个空的哈希表,用于记录每个字符是否已经出现过。
2. 遍历字符串中的每个字符,如果该字符在哈希表中不存在,则将其添加到哈希表中,并将其添加到结果字符串中;否则,忽略该字符。
3. 最后返回结果字符串即可。
下面是一个示例 Python 代码实现:
```python
def remove_duplicates(s):
hash_table = {}
result = ''
for c in s:
if c not in hash_table:
hash_table[c] = True
result += c
return result
```
例如,对于字符串 "hello world",调用 `remove_duplicates("hello world")` 会返回 "helo wrd"。
相关问题
c语言编辑字符串删除重复字符
你可以使用一个指针变量来遍历字符串,同时使用另一个指针变量来存储非重复的字符。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void removeDuplicates(char *str) {
int len = strlen(str);
int i, j, k;
// 遍历字符串
for (i = 0; i < len; i++) {
// 检查当前字符是否已经出现过
for (j = 0; j < i; j++) {
if (str[j] == str[i]) {
break;
}
}
// 如果当前字符没有出现过,则将其添加到新字符串中
if (j == i) {
str[k++] = str[i];
}
}
// 在新字符串结尾添加 '\0'
str[k] = '\0';
}
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, 100, stdin);
removeDuplicates(str);
printf("删除重复字符后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们首先使用 `strlen` 函数获取字符串的长度,并且使用两个指针变量 `i` 和 `j` 来遍历字符串。变量 `k` 用来指示新字符串的长度,并且在遍历过程中不断增加。
在内部循环中,我们检查当前字符是否已经出现过。如果是,就跳过这个字符,否则就将其添加到新字符串中。
最后,我们在新字符串结尾添加 '\0',以确保它是一个有效的 C 字符串。
c语言编辑字符串删除重复字符 aaabbccccdddeeeee abcde
可以使用双指针的方法来实现,具体步骤如下:
1. 定义两个指针i和j,初始值都为0。
2. 从左到右遍历字符串,如果第i个字符和第j个字符不同,则将第i个字符赋值给第j+1个字符,然后i和j都加1,表示下一个字符需要和新的字符进行比较。
3. 如果第i个字符和第j个字符相同,则只将i加1,跳过该字符。
4. 最终,将j+1个字符到字符串结尾的字符全部赋值为空格,表示删除了重复的字符。
下面是代码实现:
```c
#include <stdio.h>
#include <string.h>
void delete_repeat(char* str) {
int i = 0, j = 0;
int len = strlen(str);
while (i < len) {
if (str[i] != str[j]) {
j++;
str[j] = str[i];
}
i++;
}
str[j + 1] = '\0';
}
int main() {
char str[] = "aaabbccccdddeeeee abcde";
delete_repeat(str);
printf("%s\n", str);
return 0;
}
```
输出结果为:`abcde`。