先把大寫的字母變成小寫的,用大寫字母+32即可變為小寫字母。
寫循環跳過字符。
然后判斷是否相等即可。具體代碼如下:
class Solution {
public:
? ? bool isPalindrome(string s) {
? ? ? ? int size=s.size();
? ? ? ? int begin=0;
? ? ? ? int end=s.size()-1;
? ? ? ? for(int i=0;i<size;i++)//大寫轉小寫
? ? ? ? {
? ? ? ? ? ?if(s[i]>64&&s[i]<91)
? ? ? ? ? ?{
? ? ? ? ? ? ?s[i]=s[i]+32;
? ? ? ? ? ?}
? ? ? ? }
? ? ?while(begin<end)
? ? ?{
? ? ? ? while((s[begin]>'z'||s[begin]<'a')&&(s[begin]<'0'||s[begin]>'9'))
? ? ?{
? ? ? ? ?begin++;
? ? ? ? ?if(begin>size)
? ? ? ? ?{
? ? ? ? ? ? return true;
? ? ? ? ?}
? ? ?
? ? ?}
? ? ?while((s[end]>'z'||s[end]<'a')&&(s[end]<'0'||s[end]>'9'))
? ? ?{
? ? ? ? end--;
? ? ?}
? ? ?if(s[begin]!=s[end])
? ? ?{
? ? ? ? ? ?return false;
? ? ?}
? ? ? ? ? ? begin++;
? ? ? ? ? ? end--;
? ? ?}
? ? ?return true;
? ? }
};