输入一个由‘a’~‘z’这26个字母组成的字符串,请去掉字符串中的重复字母。 输入描述 一行,一个字符串,长度不超过1000。 输出描述 一行,去重后的字符串,按英文字母顺序排列。c++
时间: 2024-12-14 08:18:15 浏览: 11
你可以使用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;
}
```
运行上述代码后,会得到一个不含重复字母、按字母顺序排列的新字符串。
相关问题
用C语言写一个算法实现统计在输入字符串中各个不同字符出现的频度。(字符串中的合法字符A~Z这26个字母和0~9这10个数字)
在C语言中,你可以使用哈希表(如数组或者结构体)来统计输入字符串中每个字符的出现次数。这里是一个简单的示例,它使用数组`freq`存储字符及其频率:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CHAR 62 // 总共考虑26个大小写字母和0-9的数字
// 结构体表示字符及其出现次数
typedef struct {
char ch;
int count;
} CharFreq;
// 初始化字符频率数组为0
void init_freq(CharFreq freq[]) {
for (int i = 0; i < MAX_CHAR; ++i) {
freq[i].count = 0;
}
}
// 更新字符计数
void update_char(CharFreq freq[], char ch) {
freq[ch - 'A' || ch - 'a' || ch - '0']++; // 根据ASCII值计算索引位置
}
// 统计并打印字符频率
void print_freq(CharFreq freq[]) {
for (int i = 0; i < MAX_CHAR; ++i) {
if (freq[i].ch != '\0') { // 非空字符
printf("Character '%c' appears %d times.\n", freq[i].ch, freq[i].count);
}
}
}
int main() {
CharFreq freq[MAX_CHAR];
char str[100];
// 输入字符串
printf("Enter a string (A-Z, a-z, and 0-9): ");
fgets(str, sizeof(str), stdin); // 注意处理换行符
str[strlen(str)-1] = '\0'; // 去掉末尾的换行符
// 初始化和更新频率
init_freq(freq);
for (char c : str) {
if ('A' <= c && c <= 'Z' || 'a' <= c && c <= 'z' || '0' <= c && c <= '9') {
update_char(freq, c);
}
}
// 打印结果
print_freq(freq);
return 0;
}
```
获得用户输入的一个字符串,去除字符串两侧出现的a~z共26个小写字母,并打印输出结果。完善代码。 s=input("请输入一个字符串") print(s.________("abcdefghijklmnopqrstuvwxyz"))
下面是完善后的代码:
```python
s = input("请输入一个字符串:")
s_trimmed = s.strip("abcdefghijklmnopqrstuvwxyz")
print(s_trimmed)
```
`strip()` 方法可以用来去除字符串两侧指定的字符,本题需要去除26个小写字母,可以将其作为 `strip()` 方法的参数传入。最后将去除后的字符串打印输出即可。
阅读全文