• 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;  
        }  
    }; 
    

    其他解法:  

  • 相关阅读:
    speex库音频降噪(含代码)
    语音增强(降噪)之一——谱减法
    CUDA与OpenGL互操作
    二维图像的三维旋转
    迷惑很久,仅以个人想法谈谈MVC架构,希望大家多给点意见
    Less使用心得
    js实现蛇形矩阵
    H5天气查询demo(二)
    HTML5 Shim
    html5发展的里程碑事件
  • 原文地址:https://www.cnblogs.com/carsonzhu/p/4690854.html
Copyright © 2020-2023  润新知