125. 验证回文串

 c++的几个内置函数

  1. islower(char c) 是否为小写字母
  2. isupper(char c) 是否为大写字母
  3. isdigit(char c) 是否为数字
  4. isalpha(char c) 是否为字母
  5. isalnum(char c) 是否为字母或者数字
  6. toupper(char c) 字母小转大
  7. tolower(char c) 字母大转小

 题目描述

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 

示例 

示例 1:

输入: s = "A man, a plan, a canal: Panama"
输出:true
解释:"amanaplanacanalpanama" 是回文串。

示例 2:

输入:s = "race a car"
输出:false
解释:"raceacar" 不是回文串。

示例 3:

输入:s = " "
输出:true
解释:在移除非字母数字字符之后,s 是一个空字符串 "" 。
由于空字符串正着反着读都一样,所以是回文串。

提示:

  • 1 <= s.length <= 2 * 10^5
  • s 仅由可打印的 ASCII 字符组成

代码

class Solution {
public:
    bool isPalindrome(string s) {
        int n = s.size();
        int i = 0, j = n - 1;
        while (i < j) {
            // 跳过非字母数字字符
            while (i < j && !isalnum(s[i])) {
                i++;
            }
            while (i < j && !isalnum(s[j])) {
                j--;
            }
            // 转换大写字符为小写字符并比较
            if (tolower(s[i]) != tolower(s[j])) {
                return false;
            }
            i++;
            j--;
        }
        return true;
    }
};

相关推荐

  1. 125. 验证

    2024-04-09 05:20:03       13 阅读
  2. 力扣-125. 验证

    2024-04-09 05:20:03       33 阅读
  3. 验证

    2024-04-09 05:20:03       18 阅读
  4. 验证算法(leetcode第125题)

    2024-04-09 05:20:03       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-09 05:20:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-09 05:20:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-09 05:20:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-09 05:20:03       18 阅读

热门阅读

  1. 【LeetCode热题100】【栈】每日温度

    2024-04-09 05:20:03       16 阅读
  2. 解决报错OSError: cannot write mode RGBA as JPEG

    2024-04-09 05:20:03       12 阅读
  3. 简述对css工程化的理解

    2024-04-09 05:20:03       14 阅读
  4. hash模式和history模式的区别

    2024-04-09 05:20:03       17 阅读
  5. 关于SpringBoot的配置文件

    2024-04-09 05:20:03       12 阅读
  6. MySQL-commit,rollback

    2024-04-09 05:20:03       13 阅读
  7. 探索 C++ 中的 string 类

    2024-04-09 05:20:03       10 阅读
  8. Inotify

    Inotify

    2024-04-09 05:20:03      11 阅读