刚刚的代码用c++展示
时间: 2024-09-15 17:09:09 浏览: 33
假设我们有一个简单的C++函数,用于检查一个字符串是否是回文,包括将字符串转为小写并移除非字母数字字符:
```cpp
#include <algorithm> // for std::tolower 和 std::isalnum
#include <string>
bool isPalindrome(const std::string& str) {
std::transform(str.begin(), str.end(), str.begin(), ::tolower); // 转为小写
str.erase(std::remove_if(str.begin(), str.end(), [](char c) { return !std::isalnum(c); }), str.end()); // 移除非字母数字
int i = 0, j = str.length() - 1; // 双指针
while (i < j) {
if (str[i] != str[j]) {
return false;
}
++i;
--j;
}
return true;
}
```
在这个代码里,首先用`std::transform`和`std::remove_if`处理原始字符串,然后通过两个指针从两端开始比较,直到它们相遇或者找到不匹配的字符。
阅读全文