删除字符串中的重复字符
时间: 2023-10-22 15:03:41 浏览: 38
可以使用哈希表来解决这个问题。具体步骤如下:
1. 创建一个空的哈希表和一个空的字符串。
2. 遍历原字符串中的每个字符,如果该字符不在哈希表中,则将该字符添加到哈希表中,并将其添加到新字符串中。
3. 如果该字符已经在哈希表中,则忽略该字符。
4. 遍历结束后,返回新字符串。
以下是一个 Python 实现:
```python
def remove_duplicates(string):
hash_table = {}
result = ""
for char in string:
if char not in hash_table:
hash_table[char] = True
result += char
return result
```
示例:
```python
>>> 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被删除了。
相关推荐
![](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)