利用迭代器颠字符串string sgood_rev(sgood.rbegin(), sgood.rend());

本文介绍了如何使用C++解决LeetCode问题125,通过类Solution实现判断字符串是否为回文串,利用isalnum()、tolower()和toupper()等C库函数进行字符处理,以及使用迭代器sgood_rev()进行字符串反转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机缘

[https://leetcode.cn/problems/valid-palindrome/]
leetcode125. 验证回文串

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


收获

class Solution {
public:
    bool isPalindrome(string s) {
        string sgood;
        for (char ch: s) {
            if (isalnum(ch)) {
                sgood += tolower(ch);
            }
        }
        string sgood_rev(sgood.rbegin(), sgood.rend());
        return sgood == sgood_rev;
    }
};

C 库函数 void isalnum(int c) 检查所传的字符是否是字母和数字。如果 c 是一个数字或一个字母,则该函数返回非零值,否则返回 0。

C 库函数 int tolower(int c) 把给定的字母转换为小写字母。如果 c 有相对应的小写字母,则该函数返回 c 的小写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。

C 库函数 int toupper(int c) 把小写字母转换为大写字母。如果 c 有相对应的大写字母,则该函数返回 c 的大写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。

string sgood_rev(sgood.rbegin(), sgood.rend());利用迭代器颠倒sgood储存到sgood_rev

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值