给出n个字符串,逆置形式算同一种字符串,问有多少种不同的字符串
时间: 2023-08-29 21:06:30 浏览: 124
要确定给定n个字符串中有多少种不同的字符串,可以使用哈希集合或者字典来存储逆置形式的字符串。对于每个字符串,将其逆置并将逆置后的字符串添加到哈希集合或字典中。最后,返回哈希集合或字典中不同字符串的数量。
下面是使用哈希集合实现的示例代码:
```cpp
#include <iostream>
#include <string>
#include <unordered_set>
int countDistinctStrings(const std::vector<std::string>& strings) {
std::unordered_set<std::string> distinctStrings;
for (const std::string& str : strings) {
std::string reversedStr = str;
std::reverse(reversedStr.begin(), reversedStr.end());
distinctStrings.insert(reversedStr);
}
return distinctStrings.size();
}
int main() {
std::vector<std::string> strings = {"apple", "banana", "orange", "elppa", "ananab"};
int distinctCount = countDistinctStrings(strings);
std::cout << "Number of distinct strings: " << distinctCount << std::endl;
return 0;
}
```
在这个示例中,我们定义了一个名为`countDistinctStrings`的函数,它接受一个`std::vector<std::string>`类型的参数,并返回不同字符串的数量。在主函数中,我们创建了一个包含n个字符串的向量,并调用`countDistinctStrings`函数来获取不同字符串的数量。最后,我们打印出结果。
请注意,这段代码假设逆置形式算作同一种字符串。如果逆置形式不算作同一种字符串,可以简单地将逆置后的字符串添加到哈希集合或字典中,而不是逆置前的字符串。
阅读全文