【刷题训练】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;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/458821.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mysql数据库:使用 bash脚本 + 定时任务 自动备份数据

mysql数据库&#xff1a;使用 bash脚本 定时任务 自动备份数据 1、前言2、为什么需要自动化备份&#xff1f;3、编写备份脚本4、备份脚本授权5、添加定时任务6、重启 crond / 检查 crond 服务状态7、备份文件检查 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏…

Flutter学习笔记---flutter环境搭建以及dart语法的学习

Flutter笔记 Flutter环境搭建 获取 Dart SDK | Dart dart-pub | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror Flutter、Dart SDK镜像资源 - 掘金 (juejin.cn) Index of /flutter/dart-archive/channels/stable/release/3.2.6/sdk/ | 清华大学…

在webapp中手动发布一个应用

目录 第一步找到wedapps文件 第二步在wedapps文件自定义创建一个文件夹 第三步在自定义的文件夹里写一个HTMl文件 第四步进bin文件找到startup打开服务器​编辑 第五步打开浏览器输入网址http://localhost:8080//demoApp//index.htmlhttp://localhost:8080//文件和后缀名 第…

微信每天通过好友上限是多少个呢?

微信每天通过好友上限是多少个呢&#xff1f; 1、新号和不活跃的号 微信新号是指注册不满15十五天&#xff0c;或者注册超过15天&#xff0c;但是没有好好养号的的账号。&#xff08;包括很多长期不活跃的账号&#xff0c;突然使用的情况&#xff09; 2、正常帐号 &#xf…

ABAP-SE16N查询底表使用自己的布局

ABAP-SE16N查询底表使用自己的布局 调整好列的位置和顺序之后&#xff0c;可以保存自己的布局&#xff0c;点击“布局”按钮&#xff0c;点击“保存布局”&#xff1a; 特定于用户&#xff1a;是只对自己有效 缺省&#xff1a;会影响所有用户 在代码里面是这样的&#xff1a;…

Android和IOS应用开发-Flutter 应用中实现记录和使用全局状态的几种方法

文章目录 在Flutter中记录和使用全局状态使用 Provider步骤1步骤2步骤3 使用 BLoC步骤1步骤2步骤3 使用 GetX&#xff1a;步骤1步骤2步骤3 在Flutter中记录和使用全局状态 在 Flutter 应用中&#xff0c;您可以使用以下几种方法来实现记录和使用全局状态&#xff0c;并在整个应…

java中的String

&#xff08;1&#xff09;创建字符串对象 //方式1 String str "abc"; //方式2 String str new String("abc"); 方式1表示&#xff1a;在字符串常量池&#xff08;String Pool&#xff09;中先寻找值为 “abc” 的内存地址&#xff0c;如果找不到&…

AI程序员Devin会在6个方面影响人类程序员

讲动人的故事&#xff0c;写懂人的代码 初创公司Cognition最近所发布的世界上首个AI程序员Devin&#xff0c;让人类程序员百感交集。因为Devin能自动干下面的事情&#xff1a; 自己学习不熟悉的技术&#xff1b; 端到端地自己搭建和部署应用程序&#xff1b; 自己找出并修复…

【数据结构】单向链表的创建及4种应用

目录 前言 自定义“单向”链表类 1. 自定义一个链表类&#xff0c;并完成“初始化链表”、“添加元素&#xff08;头插法/尾插法&#xff09;”、“计算链表长度”操作&#xff1b; 自定义链表 向链表中插入元素&#xff08;头插法&#xff09; 向链表中插入元素&#xf…

D-阿洛酮糖-DAEase酶固定化载体及混合糖液分离

#D-阿洛酮糖-DAEase酶固定化载体及混合糖液分离 ​阿洛酮糖为白色固体晶体&#xff0c;无气味&#xff0c;具有较大的溶解度&#xff0c;柔和的口感&#xff0c;其具有传统甜味剂蔗糖70%的甜度&#xff0c;却几乎不提供任何热量。其与食物中的蛋白质&#xff0c;如鸡蛋蛋白发生…

使用SpaceDesk实现iPad成为电脑拓展屏(保姆级教程)

使用SpaceDesk实现iPad成为电脑拓展屏 SpaceDesk是一个开源的软件, 所以说对学生和平民用户非常的友好, 连接后的画质也非常不错, 而且具有无线和有线两种连接方式. 接下来就开始教程: 1. 安装SpaceDesk电脑版 首先我们要下载SpaceDesk电脑版安装好: SpaceDesk官网 注意: …

Unity PS5开发 天坑篇 之 DEVKit环境部署与系统升级02

上一篇各位大神们已经收到了SONY官方免费寄送的PS5开发机与测试机&#xff0c;恭喜大家成为SONY的开发者, 本篇继续PS5开发机的部署与开发套件使用。 一, PC安装PS5 SDK与系统升级 1. PC/PS5 SDK Manager下载安装包 登录开发者账号后&#xff0c;Development->Resources&a…

深入浅出:Python中的JSON操作和最佳实践

深入浅出&#xff1a;Python中的JSON操作和最佳实践 引言Python中处理JSON的基础读取JSON数据示例&#xff1a; 将Python对象转换为JSON格式示例&#xff1a; 进阶使用技巧高级参数的使用示例&#xff1a; 处理复杂对象&#xff1a;自定义编码器示例&#xff1a; 解析复杂JSON数…

C语言——动态内存分配

前言&#xff1a;通过前面的学习&#xff0c;我们知道C语言中在内存中开辟空间的方法有&#xff1a;变量和数组。既然拥有了开辟空间的方法&#xff0c;我们为什么还要学习动态内存分配呢&#xff1f; int val 20; //在内存中开辟四个字节的空间 int arr[10] { 0 }; //在内…

vue3速查笔记

文章目录 一、创建Vue3.0工程1.使用 vue-cli 创建2.使用 vite 创建 二、常用 Composition API1.拉开序幕的setup2.ref函数3.reactive函数4.Vue3.0中的响应式原理vue2.x的响应式Vue3.0的响应式 5.reactive对比ref6.setup的两个注意点7.计算属性与监视1.computed函数2.watch函数3…

加入波卡去中心化未来计划,申请高达 2000 万美金和 500 万 DOT 激励!

在努力推进去中心化的旅途中&#xff0c;2023 年 11 月 16 日成为了一个标志性的日子。Web3 基金会 —— 一个在区块链技术和去中心化应用发展前沿不断探索和推动的组织&#xff0c;正式宣布推出去中心化未来&#xff08;Decentralized Futures&#xff09;计划&#xff0c;同时…

凝思操作系统离线安装mysql和node

PS&#xff1a;下面这就是国产凝思的界面,测试版本是V6.0.80&#xff0c;第一次听说这种系统&#xff0c;于是去官网下载部署包&#xff0c;下面是地址 注意:这个系统如果没有激活&#xff0c;ip都不会有&#xff0c;这样文件都不能传到服务器&#xff0c;xshell这些工具都连不…

redis的RDB和AOF持久化配置

RDB 持久化相关配置 Redis内部的触发RDB的机制&#xff0c;格式如下&#xff1a; # 900秒内&#xff0c;如果至少有1个key被修改&#xff0c;则执行bgsave &#xff0c; 如果是save "" 则表示禁用RDB save 900 1 save 300 10 save 60 10000 RDB的其它配置也可以…

“数据要素市场行业数智化实践系列沙龙”活动预告

在数据要素大背景下&#xff0c;随着最新的政策发布&#xff0c;有哪些行业红利和机会&#xff1f;目前行业数据应用现状如何&#xff1f;上海数商协会联合蚂蚁集团、上海数据交易所&#xff0c;打造了行业数智化实践课程&#xff0c;面向数商协会成员及数据要素从业人员&#…

景联文科技:提供通用多模态数据,助力AI多模态领域实现飞跃式发展

回顾2023年&#xff0c;以ChatGPT为代表的通用人工智能大模型在全球范围内掀起了新一轮人工智能产业发展浪潮&#xff0c;我国人工智能大模型市场呈现百“模”争鸣、日新月异的迅猛发展态势。 根据大模型之家、钛媒体数据&#xff0c;2023年中国大模型市场规模达到147亿人民币&…