当前位置: 首页 > article >正文

【C++习题】5.验证一个字符串是否是回文

题目:

链接🔗:验证一个字符串是否是回文

题目:

70b50734e40042edd981dd489fccd3c2


代码:

class Solution {
public:
    // 判断字符是否为字母或数字
    bool isLetterOrNumber(char ch)
    {
        return (ch >= '0' && ch <= '9')
            || (ch >= 'a' && ch <= 'z')
            || (ch >= 'A' && ch <= 'Z');
    }
	// 判断字符串是否为回文
    bool isPalindrome(string s) {
        // 先小写字母转换成大写,再进行判断
        for(auto& ch : s)
        {
            if(ch >= 'a' && ch <= 'z')
                ch -= 32;// 将小写字母转换为大写
        }

        int begin = 0, end = s.size()-1;// 初始化双指针,分别指向字符串的开始和结束位置
        while(begin < end)// 当双指针未相遇时继续循环
        {
            while(begin < end && !isLetterOrNumber(s[begin]))// 移动左指针,直到它指向字母或数字
                ++begin;

            while(begin < end && !isLetterOrNumber(s[end]))// 移动右指针,直到它指向字母或数字
                --end;

            if(s[begin] != s[end])// 比较左右指针指向的字符是否相等
            {
                return false;// 如果不相等,说明不是回文
            }
            else
            {
                ++begin; // 如果相等,移动指针继续比较
                --end;
            }
        }

        return true;// 如果所有字符都相等,说明是回文
    }
};

注意:

我们要实现的是:给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false

而:如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。这个东西是回文串的描述,不需要实现!


http://www.kler.cn/a/402442.html

相关文章:

  • Java基础1.0
  • 【网络通信】数据集合集!
  • python语言基础-5 进阶语法-5.4 正则表达式
  • PHP 8.4 正式发布
  • 今天你学C++了吗?——C++中的类与对象(第二集)
  • 项目缓存之Caffeine咖啡因
  • 详解模版类pair
  • go channel中的 close注意事项 range取数据
  • MySQL数据库4——数据库设计
  • 基于YOLOv8深度学习的医学影像阿尔兹海默症检测诊断系统研究与实现(PyQt5界面+数据集+训练代码)
  • 【设计模式】行为型模式(四):备忘录模式、中介者模式
  • javaweb学习——Day2
  • 原生鸿蒙中实现RN热加载的详细步骤
  • gin源码阅读(2)请求体中的JSON参数是如何解析的?
  • 科技赋能-JAVA发票查验接口、智能、高效的代名词
  • 【springboot】配置文件加载顺序
  • 「四」体验HarmonyOS端云一体化开发模板——工程目录结构与云侧工程一键部署AGC云端
  • 【D01】网络安全概论
  • mySql修改时区完整教程
  • 实战精选|如何使用 OpenVINO™ 在 ElectronJS 中创建桌面应用程序
  • Stable Diffusion核心网络结构——CLIP Text Encoder
  • 修改gitee提交时用户名密码输错导致提交失败的解决方法
  • 第14章 Nginx WEB服务器企业实战
  • 详细描述一下Elasticsearch搜索的过程?
  • 计算机网络安全 —— 对称加密算法 DES (一)
  • Linux TCP 服务器实现双向通信1v1