验证回文串
解题思路:
双指针法。主要注意把字母全换成一种格式再比较,并且可能是符号的时候要跳过。
代码:
public bool IsPalindrome(string s)
{
s=s.ToLower().Replace(" ", "");//要区分大小写,所以将其全部转换为小写字母,再将s中所有空格去掉。
int left = 0;
int right = s.Length-1;
while(left<right)
{
while (s[left] > 'z' || s[left] < 'a' && s[left] > '9' || s[left] < '0'&&left<right)
left++;
while (s[right] > 'z' || s[right] < 'a' && s[right] > '9' || s[right] < '0'&&right>left)
right--;//当字符不是字母也不是符号的时候跳过。
if (s[left] != s[right])
return false;
left++;
right--;
}
return true;//只要能出来一定是回文。
}