题目:有效回文串

给定一个字符串,判断其是否为一个回文串。只包含字母和数字,忽略大小写。

您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题? Airbnb Alibaba Amazon Apple Baidu Bloomberg Cisco Dropbox Ebay Facebook Google Hulu Intel Linkedin Microsoft NetEase Nvidia Oracle Pinterest Snapchat Tencent Twitter Uber Xiaomi Yahoo Yelp Zenefits
感谢您的反馈
样例

"A man, a plan, a canal: Panama" 是一个回文。

"race a car" 不是一个回文。

注意

你是否考虑过,字符串有可能是空字符串?这是面试过程中,面试官常常会问的问题。

在这个题目中,我们将空字符串判定为有效回文。

挑战

O(n) 时间复杂度,且不占用额外空间。

标签 Expand
字符串处理 两根指针



相关题目 Expand         

public class Solution {
    /**
     * @param s A string
     * @return Whether the string is a valid palindrome
     */
    public boolean isPalindrome(String s) {
        // Write your code here
                 if(null==s||s.length()==0) return true;
         int start = 0;
         int end = s.length()-1;
         boolean flag = true;
         while(start
              while(!(isVP(s.charAt(start)))){
                   start++;
                   if(start>=end){
                        return true;
                   }
              }
              while(!(isVP(s.charAt(end)))){
                   end--;
                   if(end<=start){
                        return true;
                   }
              }
                  char st = s.charAt(start);
                  char ed = s.charAt(end);
                  if(st!=ed&&st+32!=ed&&st-32!=ed){
                       flag = false;
                       break;
                  }
                  start++;
                  end--;    
         }
         return flag;
    }
   
    public boolean isVP(char c){
         if(c >= 'A' && c <= 'z') return true;
         if(c >= '0' && c <= '9') return true;
         return false;
    }
}



你可能感兴趣的:(题目:有效回文串)