很简单的判断是否是回文的题,
英文:palindrome表示回文
可以通过递归的方法,也可以通过直接循环的方法判断。
一、递归(不知道为什么内存超了)
bool is_palindrome(string s,int i,int j){ if(s[i]!=s[j])return false; if(i>=j)return true; return is_palindrome(s,i+1,j-1); } bool isPalindrome(string s){ if(s.size()==0)return true; string tmp; for(int i=0;i<s.size();i++){ if(s[i]>='0'&&s[i]<='9' ||s[i]>='a'&&s[i]<='z' ||s[i]>='A'&&s[i]<='Z'){ if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]-'A'+'a'; tmp+=s[i]; } } return is_palindrome(tmp,0,tmp.size()-1); }
二、循环
bool isPalindrome(string s){ if(s.size()==0)return true; string tmp; for(int i=0;i<s.size();i++){ if(s[i]>='0'&&s[i]<='9'||s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){ if(s[i]>='A'&&s[i]<='Z')s[i]=s[i]-'A'+'a'; tmp+=s[i]; } } for(int i=0;i<tmp.size()/2;i++){ if(tmp[i]!=tmp[tmp.size()-1-i]) return false; } return true; }