leetcode:Valid Palindrome 菜鸟解法
2015-03-10 23:50
330 查看
我使用的方法是头一个指针,尾一个指针,同时往前运动,当有不相同的字母或数字即为非回文
代码如下:
class Solution {
public:
bool isPalindrome(string s) {
int len = s.size();
int offset = 'a'-'A';
if(len==0) return true;
int i = 0,j=0;
j=len;
while(i<=j){
if(s[i]<48|(s[i]>57&s[i]<65)|(s[i]>90&s[i]<97)|s[i]>122){
i++;
continue;
}
if(s[j]<48|(s[j]>57&s[j]<65)|(s[j]>90&s[j]<97)|s[j]>122){
j--;
continue;
}
if(((s[i]-s[j])*(abs(s[i]-s[j])-offset))!=0) return false;
i++;j--;
}
return true;
}
};
代码如下:
class Solution {
public:
bool isPalindrome(string s) {
int len = s.size();
int offset = 'a'-'A';
if(len==0) return true;
int i = 0,j=0;
j=len;
while(i<=j){
if(s[i]<48|(s[i]>57&s[i]<65)|(s[i]>90&s[i]<97)|s[i]>122){
i++;
continue;
}
if(s[j]<48|(s[j]>57&s[j]<65)|(s[j]>90&s[j]<97)|s[j]>122){
j--;
continue;
}
if(((s[i]-s[j])*(abs(s[i]-s[j])-offset))!=0) return false;
i++;j--;
}
return true;
}
};
相关文章推荐
- leetcode:Pow(x,n)菜鸟解法
- leetcode:Find Minimum in Rotated Sorted Array 菜鸟解法
- leetcode:Divide Two Integers菜鸟解法
- Leetcode:Remove Element 菜鸟解法
- leetcode: Sum Root to Leaf Numbers 菜鸟解法
- leetcode:Search Insert Position菜鸟解法
- leetcode: Maximum subarray product 菜鸟解法
- leetcode:Find Peak Elements 菜鸟解法
- leetcode:two sum 菜鸟解法
- Leetcode: Remove Duplicates from Sorted List 菜鸟解法
- leetcode:Remove Duplicates from Sorted Array菜鸟解法
- leetcode:add binary 菜鸟解法
- leetcode:Majority Elements 菜鸟解法
- Leetcode:Same Tree 菜鸟解法
- leetcode:Binary Tree Preorder Traversal菜鸟解法
- leetcode:Rotate Image菜鸟解法
- leetcode:Single Number 菜鸟解法
- leetcode:Find Minimum in Rotated Sorted Array II 菜鸟解法
- leetcode:Set Matrix Zeors 菜鸟解法
- leetcode:Single NumberII 菜鸟解法