去除字符串中重复字母c++
时间: 2023-05-28 17:05:55 浏览: 99
以下是Python的实现:
```python
def remove_duplicates(string):
# 将字符串转换为列表
chars = list(string)
# 初始化一个空的栈
stack = []
# 遍历字符列表
for char in chars:
# 如果当前字符是c并且栈顶元素也是c,则跳过
if char == 'c' and stack and stack[-1] == 'c':
continue
# 将当前字符压入栈中
stack.append(char)
# 将栈中的元素转换为字符串并返回
return ''.join(stack)
```
这里使用了一个栈来去除重复的字母c。遍历字符列表,如果当前字符是c并且栈顶元素也是c,则跳过;否则,将当前字符压入栈中。最后将栈中的元素转换为字符串并返回。
相关问题
C++去除字符串中重复字母
以下是一个C程序,可以去除字符串中的重复字母:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100], newstr[100];
int len, i, j, k;
printf("Enter a string: ");
scanf("%s", str);
len = strlen(str);
for(i=0; i<len; i++) {
for(j=i+1; j<len; j++) {
if(str[i] == str[j]) {
for(k=j; k<len; k++) {
str[k] = str[k+1];
}
len--;
j--;
}
}
}
printf("String with no duplicate letters: %s\n", str);
return 0;
}
```
该程序通过两个嵌套的循环来比较字符串中的每个字符,并删除重复的字符。最后,将更改后的字符串打印出来。
输入一个由‘a’~‘z’这26个字母组成的字符串,请去掉字符串中的重复字母。 输入描述 一行,一个字符串,长度不超过1000。 输出描述 一行,去重后的字符串,按英文字母顺序排列。c++
你可以使用C++的set容器来去除重复字符,因为set自动保持元素唯一。这里是一个简单的例子:
```cpp
#include <iostream>
#include <unordered_set> // 包含set容器,保证唯一性
#include <string>
std::string removeDuplicates(std::string str) {
std::unordered_set<char> unique_chars;
std::string result;
for (char c : str) {
if (unique_chars.find(c) == unique_chars.end()) { // 检查字符是否已存在
unique_chars.insert(c);
result += c; // 添加到结果字符串
}
}
return result;
}
int main() {
std::string input;
std::cin >> input;
std::string output = removeDuplicates(input);
std::cout << output << '\n'; // 输出去重并按字母顺序排列的字符串
return 0;
}
```
运行上述代码后,会得到一个不含重复字母、按字母顺序排列的新字符串。
阅读全文