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

【刷题训练】LeetCode125. 验证回文串

验证回文串

题目要求

在这里插入图片描述
示例 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 * 105
  • s 仅由可打印的 ASCII 字符组成

解题思路

1.遍历s,将其中的大小写字符和数字保存到s1中,并且,将大写英文转换成小写。
2.使用前后指针left和right。向中间遍历,如果有不同的就返回错误。

难点:英文大小写转换方法:

  • 1.使用Ascll码。
    【小写 - 32 =大写】 ————【大写 + 32 = 小写】
  • 2.使用函数
    tolower();将大写字母转换为小写字母
    toupper();将小写字母转换为大写字母

这两个函数只会对英文字母产生作用,如果取到其他类型例如数字,会不做处理。

C++代码

class Solution {
public:bool isPalindrome(string s) {string s1;if(s.size()==0) return true;for (auto ch : s){if ((ch >= 'a' && ch<= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9')){if (ch >= 'A' && ch <= 'Z'){ch +=  32;}s1 += ch;}}int left =0,right = s1.size()-1;while(left<right){if(s1[left]!=s1[right]){return false;}++left;--right;}return true;}
};

使用大小写转换函数

class Solution {
public:bool isPalindrome(string s) {string s1;if(s.size()==0) return true;for (auto ch : s){if ((ch >= 'a' && ch<= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9')){s1 += ch;}}int left =0,right = s1.size()-1;while(left<right){if(tolower(s1[left])!=tolower(s1[right])){return false;}++left;--right;}return true;}
};
http://www.lryc.cn/news/318342.html

相关文章:

  • optee默认安全配置
  • Arcgis新建位置分配求解最佳商店位置
  • 【C++初阶】C++入门(上)
  • Vue.js+SpringBoot开发校园疫情防控管理系统
  • 客服销冠偷偷用的提效神器!无广很实用
  • 蓝桥杯刷题|02入门真题
  • Jenkins cron定时构建触发器
  • 【编程向导】JavaScript-创建对象一期讲解
  • 【MySQL性能优化】- 一文了解MVCC机制
  • 性能测试-Redis
  • 浅析C++的指针与引用
  • 【消息队列开发】 实现消息删除逻辑
  • 【golang】28、用 httptest 做 web server 的 controller 的单测
  • 296.【华为OD机试】污染水域 (图的多源BFS—JavaPythonC++JS实现)
  • C语言——动态内存分配
  • 瑞_23种设计模式_策略模式
  • 使用 OpenAI 的 text-embedding 构建知识向量库并进行相似搜索
  • 设计模式学习笔记 - 规范与重构 - 5.如何通过封装、抽象、模块化、中间层解耦代码?
  • YOLOv9实例分割教程|(二)验证教程
  • python 基础知识点(蓝桥杯python科目个人复习计划63)
  • IAB视频广告标准《数字视频和有线电视广告格式指南》之 简介、目录及视频配套广告 - 我为什么要翻译介绍美国人工智能科技公司IAB系列(2)
  • Python网络基础爬虫-python基本语法
  • 产品推荐 - 基于星嵌 OMAPL138+国产FPGA的DSP+ARM+FPGA三核开发板
  • 【微服务学习笔记(一)】Nacos、Feign、Gateway基础使用
  • 使用maven打生产环境可执行包
  • springboot+ssm基于vue.js的客户关系Crm管理系统
  • github 中的java前后端项目整合到本地运行
  • 分布式ID(7):Zookeeper实现分布式ID生成
  • 钉钉小程序 - - - - - 如何通过一个链接打开小程序内的指定页面
  • Java代码基础算法练习---2024.3.14