删除字符串中的重复字符。
时间: 2023-12-05 20:04:54 浏览: 28
可以使用一个哈希表来记录每个字符出现的次数,然后再遍历一遍字符串,将出现次数大于1的字符删除即可。以下是Python的代码实现:
```python
def remove_duplicates(s):
freq = {} # 哈希表记录每个字符的出现次数
for c in s:
freq[c] = freq.get(c, 0) + 1
result = "" # 存储去重后的字符串
for c in s:
if freq[c] > 0:
result += c
freq[c] = 0
return result
```
例如,对于字符串 "hello world",调用 remove_duplicates("hello world") 的结果为 "helo wrd"。
相关问题
p ython删除字符串中重复字符
你可以使用 Python 中的集合(set)来删除字符串中的重复字符。具体代码如下:
```python
s = "hello world"
s = ''.join(set(s))
print(s)
```
运行结果为:
```
drh weol
```
解释:
- `set(s)` 将字符串 `s` 转换为一个集合,集合中的元素就是字符串中的所有字符,且不包含重复元素。
- `join()` 方法可以将集合转换为字符串,括号中的参数为分隔符,因为我们不需要分隔符,所以传入一个空字符串。
- 最后输出结果即可。
用指针编写删除字符串中重复字符的函数
可以使用指针编写一个删除字符串中重复字符的函数,具体实现如下:
```c
void deleteDuplicateChar(char *str) {
if (str == NULL) {
return;
}
int len = strlen(str);
if (len < 2) {
return;
}
char *p = str;
while (*p != '\') {
char *q = p + 1;
while (*q != '\') {
if (*q == *p) {
char *r = q;
while (*r != '\') {
*r = *(r + 1);
r++;
}
len--;
} else {
q++;
}
}
p++;
}
*(str + len) = '\';
}
```
该函数的实现思路是,首先判断字符串是否为空或长度小于2,如果是则直接返回。然后使用指针p遍历字符串中的每个字符,再使用指针q从p的下一个字符开始遍历,如果发现有与p相同的字符,则使用指针r将该字符后面的所有字符向前移动一位,同时字符串长度减1。最后在字符串末尾添加一个空字符,表示字符串的结束。
例如,对于字符串"hello world",调用该函数后,字符串变为"helowrd",重复的字符l被删除了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)