leetcode125. 验证回文串

Posted The August

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode125. 验证回文串相关的知识,希望对你有一定的参考价值。

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明: 本题中,我们将空字符串定义为有效的回文串。

示例:

输入: “A man, a plan, a canal: Panama”
输出: true
解释:“amanaplanacanalpanama” 是回文串

提示:

  • 1 <= s.length <= 2 * 105
  • 字符串 s 由 ASCII 字符组成

思路:

  1. 首先将字符串s中的大写字母转化为小写字母

  2. 其次,定义两个变量begin和end,记录字符串的首位置和末位置,然后当begin和end所指的位置上的字符符合题目时,停止,比较字符是否相同,相同继续走直到begin=end时,不同则结束返回false

代码如下:

class Solution 
public:
    bool is_char(char ch)//判断字符是否为数字或字母
    
        if((ch>='0'&&ch<='9')||(ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z'))
        
            return true;
        
        else
        
            return false;
        

    
    bool isPalindrome(string s) 
    
        int end=s.size()-1;
        int begin=0;
        for(auto& m:s)
        
            if(m>='A'&&m<='Z')
            
                m+=32;// 将大写字母转化为小写字母
            
        
        while(begin<end)
        
            while(!is_char(s[begin])&&begin<end)
            
                begin++;//跳过非字母和数字字符
            
            while(!is_char(s[end])&&begin<end)
            
                end--;//跳过非字母和数字字符
            
            if(s[begin]!=s[end])
            
                return false;// 两边不相等返回false
            
            begin++;
            end--;

        
        return true;

    
;

以上是关于leetcode125. 验证回文串的主要内容,如果未能解决你的问题,请参考以下文章

leetcode125. 验证回文串

LeetCode第125题—验证回文串—Python实现

LeetCode-125-验证回文串

LeetCode:验证回文串125

前端与算法 leetcode 125. 验证回文串

leetcode 125. 验证回文串