c++输入一个字符串,求这个字符串中不同字符对的个数。
时间: 2024-09-08 20:02:42 浏览: 58
在C++中,如果你想要计算一个字符串中所有不同字符对的数量,可以使用哈希表(如`std::unordered_set`)来存储已经遇到过的字符,然后遍历整个字符串,每次遇到一个新的字符,就将它与其前一个字符形成一对,更新计数。以下是一个简单的示例:
```cpp
#include <iostream>
#include <unordered_set>
int countDistinctPairs(const std::string &str) {
if (str.empty()) return 0;
std::unordered_set<char> charSet;
int pairCount = 0;
for (size_t i = 1; i < str.length(); ++i) {
// 如果当前字符首次出现
if (charSet.find(str[i]) == charSet.end()) {
// 更新计数,因为每对都是由两个不同的字符组成
pairCount += charSet.size();
// 将当前字符添加到集合中
charSet.insert(str[i]);
} else {
// 如果当前字符已存在集合中,说明遇到了重复字符,跳过此对
continue;
}
}
return pairCount;
}
int main() {
std::string input;
std::cout << "Enter a string: ";
std::getline(std::cin, input);
int result = countDistinctPairs(input);
std::cout << "Number of distinct character pairs: " << result << std::endl;
return 0;
}
```
在这个程序中,用户会先输入一个字符串,然后`countDistinctPairs`函数计算并返回不同字符对的数量。注意,这里假设字符串中的字符对由连续的两个字符构成。
阅读全文