zoukankan      html  css  js  c++  java
  • leetcode:Valid Palindrome

    Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

    For example,
    "A man, a plan, a canal: Panama" is a palindrome.
    "race a car" is not a palindrome.

    Note:
    Have you consider that the string might be empty? This is a good question to ask during an interview.

    For the purpose of this problem, we define empty string as valid palindrome.

    分析:题意为 给出一个字符串,检查它是不是一个回文的情况。判断时只考虑字母数字的字符并且忽略大小写。

    注意点 1、考虑字符串为空的情况,并将其作为回文的

              2、忽略大小写的差别,比较之前先将大小写转换为一致的

              3、非字母数字字符要跳过,将它滤除,得到有效字符串

              4、对有效字符串前后相应位置进行比较判断

    代码如下:

    class Solution {  
    public:  
        bool isStr(char &ch){  
            if(ch >= '0' && ch <= '9'){  
                return true;  
            } else if(ch >= 'a' && ch <= 'z'){  
                return true;  
            } else if(ch >= 'A' && ch <= 'Z'){  
               ch += 32;  
               return true;  
            }   
              
            return false;  
        }  
          
        bool isPalindrome(string s) {  
            // Start typing your C/C++ solution below  
            // DO NOT write int main() function  
            int len = s.length();  
            if(len == 0){  
                return true;  
            }  
              
            string str = "";  
            for(int i = 0; i < len; i++){   // remove illegal char, such as "?" "/" ...  
                if(isStr(s[i])){  
                    str += s[i];  
                }  
            }  
              
            len = str.length();  
            int mid = (len + 1) / 2;  
            for(int i = 0; i < mid; i++){  
                if(str[i] != str[len - 1 - i]){     // check front and end char  
                    return false;  
                }  
            }  
            return true;  
        }  
    }; 
    

    其他解法:  

  • 相关阅读:
    PHP之十六个魔术方法详解
    PHP之十六个魔术方法详解
    让Docker容器使用静态独立的外部IP(便于集群组建)
    桥接和nat模式区别
    使用 GitHub / GitLab 的 Webhooks 进行网站自动化部署
    docker gitlab
    docker gitlab安装
    docker ui管理工具
    docker 批量删除容器
    Scrapy设置代理
  • 原文地址:https://www.cnblogs.com/carsonzhu/p/4690854.html
Copyright © 2011-2022 走看看