每日一题 <验证回文串>

简介: 每日打卡

image.png

这题在以前就用C语言写过了,最近又拿出来用C++再写一遍。

class Solution {
public:
bool isPalindrome(string s) {
    int n = s.size();    //字符串的大小
    int left = 0;        //确定双指针左右边界
    int right = n - 1; 
    while (left < right)
    {
        while (left < right && !isalnum(s[left])) //确保不越界且跳过对符号的选择
        {
            left++;
        }
        while (left < right && !isalnum(s[right]))
        {
            right--;
        }
        if(left < right)
        {
            if (tolower(s[left]) != tolower(s[right]))  //大小写不同也可以认为相等,不妨都转换成小写
        {
            return false;
        }
        }
        left++;
        right--;
    }
    return true;
}
};

image.gif

目录
相关文章
|
5月前
力扣经典150题第二十五题:验证回文串
力扣经典150题第二十五题:验证回文串
35 0
|
5月前
|
canal 算法 数据可视化
LeetCode 125题:验证回文串
LeetCode 125题:验证回文串
|
6月前
|
canal Java
java字符串练习题7、验证回文串
java字符串练习题7、验证回文串
88 0
|
6月前
leetcode-125:验证回文串
leetcode-125:验证回文串
52 0
|
6月前
|
算法
算法编程(六):验证回文串
算法编程(六):验证回文串
49 0
LeetCode150道面试经典题--验证回文串(简单)
如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。
72 0
|
人工智能
Leecode 680 验证回文串 II 双指针法
第一次报错是因为没有判断删除一个字符后的情况 第二次报错是因为没有添加是删除一个字符而不是删除多个字符能不能构成回文串的条件 第三次报错是因为没有考虑先删除左边还是右边的问题,有些奇葩它先删除左边不可以通过,得先删除右边
|
canal
LeetCode 125. 验证回文串
LeetCode 125. 验证回文串
85 0
LeetCode 125. 验证回文串
LeetCode 680.验证回文字符串 Ⅱ(双指针法)
LeetCode 680.验证回文字符串 Ⅱ(双指针法)
86 0
LeetCode 680.验证回文字符串 Ⅱ(双指针法)
LeetCode 680. 验证回文字符串 Ⅱ
给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。
71 0