c语言:给你一个仅包含小写英文字母的字符串,请你编程判断这个字符串所有字符是否全都不同。 输入 输入一行字符串,仅包含小写英文字母,并且字符串的长度在 [ 1 , 50 ] 之间 输出 输出一行,如果字符串满足题意,输出“Yes”,否则输出“No”
时间: 2024-12-24 14:42:12 浏览: 11
在C语言中,你可以使用哈希表(如`std::unordered_set`)来判断一个字符串的所有字符是否都不同。以下是简单的步骤:
1. 定义一个哈希集合(set),用于存储已遇到的字符。
2. 遍历输入的字符串,对于每个字符,检查它是否已经在哈希集合中。如果不在,将其添加到集合中;如果已经在,说明有重复字符,直接返回"No"。
3. 遍历结束后,如果没有找到重复字符,返回"Yes"。
这里是一个简单的示例代码片段:
```c
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unordered_set>
bool areAllCharsUnique(const char* str) {
std::unordered_set<char> charSet;
for (int i = 0; str[i] != '\0'; i++) {
if (charSet.find(str[i]) != charSet.end()) {
return false;
}
charSet.insert(str[i]);
}
return true;
}
int main() {
char input[51];
fgets(input, sizeof(input), stdin); // 读取用户输入并去掉换行符
input[strcspn(input, "\n")] = '\0'; // 清除换行符
bool uniqueChars = areAllCharsUnique(input);
if (uniqueChars) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
当你运行此程序并输入一个字符串后,它会检查字符是否全部独特,然后输出相应的结果。注意,这段代码假设用户输入的字符串不超过50个字符,并且在程序开始之前已经包含了标准输入处理。
阅读全文