给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写(力扣)
程序员文章站
2024-03-15 17:28:18
...
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
#include <iostream>
#include <string>
using namespace std;
//给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
class Solution
{
public:
bool isPalindrome(string s)
{
s = toLowerCase(s); //全部变为小写
int start = 0;
int end = s.size() - 1;
bool flag = true;
while (start < end)
{
if (s[start] != s[end])
{
return false;
}
start++;
end--;
}
return flag;
}
string toLowerCase(string s)
{
string ret = "";
for (int i = 0; i < s.size(); i++)
{
if ('A' <= s[i] && s[i] <= 'Z')
{
s[i] += ('a' - 'A');
ret += s[i];
}
else if (('a' <= s[i] && s[i] <= 'z') || ('0' <= s[i] && s[i] <= '9'))
{
ret += s[i];
}
}
return ret;
}
};
int main()
{
string s1 = "A man, a plan, a canal: Panama";
Solution s;
bool flag = s.isPalindrome(s1);
cout << flag << endl;
string s2 = "0P";
flag = s.isPalindrome(s2);
cout << flag << endl;
return 0;
}
上一篇: 输入一个字符串,统计字母,数字和其他符号出现的次数
下一篇: 汇编实现 一个字符串的大小写转换