判断是否为偶数回文串的c++代码
时间: 2024-12-24 11:01:53 浏览: 3
C语言判断回文字符串代码.rar
5星 · 资源好评率100%
判断一个字符串是否为偶数回文串(即反转后读起来和原样一样的字符串,并且字符的出现次数都是偶数次),你可以使用C++编写如下的代码:
```cpp
#include <string>
#include <unordered_map>
bool isEvenPalindrome(std::string s) {
std::unordered_map<char, int> count;
for (char c : s) {
++count[c];
}
// 检查字符计数值是否全部为偶数
for (auto& pair : count) {
if (pair.second % 2 != 0) return false;
}
// 只有字符计数都为偶数还不够,还需要检查字符串长度是否为偶数
if (s.size() % 2 == 1) return false;
return true;
}
int main() {
std::string str = "abcba";
if (isEvenPalindrome(str)) {
std::cout << "The string is an even palindrome.\n";
} else {
std::cout << "The string is not an even palindrome.\n";
}
return 0;
}
```
这个函数`isEvenPalindrome`遍历输入字符串`s`,统计每个字符出现的次数并存储在`unordered_map`中。然后它检查每个值是否为偶数。如果所有字符的计数都是偶数,并且字符串长度也是偶数,则返回`true`,表示它是偶数回文串;否则返回`false`。
阅读全文