zoukankan      html  css  js  c++  java
  • 【初级算法】16. 验证回文字符串

    题目:

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
    
    说明:本题中,我们将空字符串定义为有效的回文串。
    
    示例 1:
    
    输入: "A man, a plan, a canal: Panama"
    输出: true
    示例 2:
    
    输入: "race a car"
    输出: false

    1.解题思路:

    本题比较简单,直接取字符串的前后字母进行比对,如果相等则前进,否则返回错误。

    class Solution {
    public:
        bool isPalindrome(string s) {
            int len = s.size();
            int start = 0;
            int end = len-1;
            
            while(start < end){
                char first,second;
                /*get the fisrt char*/
                while(start <= end){
                    if((s[start] >= 'a' && s[start] <= 'z')||
                       (s[start] >= 'A' && s[start] <= 'Z')||
                       (s[start] >= '0' && s[start] <= '9')){
                        first = s[start];
                        if(s[start] >= 'A' && s[start] <= 'Z'){
                            first = first-'A'+'a';
                        }
                        break;
                    }else{
                        start++;
                    }
                }
                
                /*get the second char*/
                while(start <= end){
                    if((s[end] >= 'a' && s[end] <= 'z')||
                       (s[end] >= 'A' && s[end] <= 'Z')||
                       (s[end] >= '0' && s[end] <= '9')){
                        second = s[end];
                        if(second <= 'Z'&&second>='A'){
                            second = second-'A'+'a';
                        }
                        break;
                    }else{
                        end--;
                    }
                }
                
                if(start > end){
                    break;
                }
                
                if(first == second){
                    start++;
                    end--;
                }else{
                    return false;
                }
            }
            
            return true;
        }
    };
  • 相关阅读:
    Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware论文阅读笔记
    this和super的总结
    软件工程结对WordCount项目
    软工个人作业 数独
    问题
    自我介绍
    shuduku
    access to DeepLearning
    自我介绍
    学习软工基目标
  • 原文地址:https://www.cnblogs.com/mikemeng/p/8984856.html
Copyright © 2011-2022 走看看