力扣-125. 验证回文串

文章目录

      • 力扣题目
      • 代码

力扣题目

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

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

给你一个字符串 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.写一个函数my_isDigPha判断字符是否是字母数字,如果大写需要转换为小写;
2.设置一前一后2个指针,跳过非字母数字的字符,然后对比2个字符是否相同,如果存在不相同的那就不是回文串。

int my_isDigPha(char *s)
{if((*s >= 'A' && *s <= 'Z') || (*s >= 'a' && *s <= 'z')  || (*s >= '0' && *s <= '9')){if(*s >= 'A' && *s <= 'Z'){*s += 32;}return 1;}else{return 0;}
}bool isPalindrome(char* s) 
{int i = 0;int j = strlen(s) - 1;while(i <= j){/*跳过非字母数字字符*/if((my_isDigPha(&s[i]) != 0) && (my_isDigPha(&s[j]) != 0)){if(s[i] != s[j]){return false;}i++;j--;}else{if(my_isDigPha(&s[i]) == 0){i++;}if(my_isDigPha(&s[j]) == 0){j--;}}}return true;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【日常聊聊】新年新征程:迎接学习的挑战

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 结语 我的其他博客 前言 随着新的一年的到来&#xff0c;程序员们站在了全新的起点。这是一个充满机遇和挑战的时刻&#xff0…

【JavaEE】_HTTP请求与响应

目录 1. HTTP协议 1.1 HTTP简介 1.2 Fiddler 2. HTTP请求 2.1 首行 2.2 请求头&#xff08;header&#xff09; 2.3 空行 2.4 正文&#xff08;body&#xff09; 3. HTTP响应 3.1 首行 3.2 响应头&#xff08;header&#xff09; 3.3 空行 3.4 正文&#xff08;bo…

13.let、const、var的区别

&#xff08;1&#xff09;块级作用域&#xff1a; 块作用域由 { }包括&#xff0c;let和const具有块级作用域&#xff0c;var不存在块级作用域。块级作用域解决了ES5中的两个问题&#xff1a; 内层变量可能覆盖外层变量用来计数的循环变量泄露为全局变量 &#xff08;2&…

51单片机编程基础(C语言):LED点阵屏

点阵屏介绍 类似于数码管&#xff0c;要用到肉眼视觉效应。扫描&#xff0c;才能把每一个LED都能选中&#xff0c;从而显示我们想要的图形&#xff0c;否则&#xff0c; 只能一次点亮一个LED&#xff0c; LED使用 51单片机点阵屏电路图&#xff1a; 实际连接顺序如下图&#…

Java中的乐观锁和悲观锁

使用场景及用法 悲观锁 总是假设最坏的情况&#xff0c;每次去拿数据的时候都认为别人会修改&#xff0c;所以每次在拿数据的时候都会上锁&#xff0c;这样别人想拿这个数据就会阻塞直到它拿到锁&#xff08;共享资源每次只给一个线程使用&#xff0c;其它线程阻塞&#xff0c;…

爱快使用VPN

文章目录 一、VPN服务器1. 各种VPN比较2. PPTP服务端配置3. 创建登录账号4. 创建端口映射5. 设置动态域名 二、Windows客户端1. 连接配置2. 不能连接 Internet 配置 一、VPN服务器 1. 各种VPN比较 PPTPIPSECOpenVPN简介微软推出的VPN协议&#xff0c;占用资源少更高级的VPN协…

php基础学习之分支结构和循环结构(不细讲,来对比一下和两大常用高级编程语言(C++/Java)的细微区别以便记忆)

分支结构 常见分支结构 编程语言常见分支结构有&#xff1a; if语句if-else语句if-elseif-else语句switch语句 其中&#xff0c;除了if-elseif-else语句外&#xff0c;另外3中分支语句在php中和C/Java是一模一样的&#xff01; 而if-elseif-else的唯一不同点就在&#xff0c;【…

Linux查看日志的几种方法总结

摘要 Linux系统中查看日志的命令确实多种多样&#xff0c;每个命令都有其特定的用途和优势。常用的命令有&#xff1a;tail、cat、tac、head、echo&#xff0c;grep、less、awk、sed。 下面我会详细解释这些命令在查看日志时的用法和特点&#xff1a; tail命令&#xff1a; ta…

机器学习:ROC曲线笔记

ROC曲线&#xff08;Receiver Operating Characteristic Curve&#xff09;是一种用于评估二分类模型性能的图形化工具&#xff0c;主要用于展示在不同阈值&#xff08;Threshold&#xff09;下模型的真阳性率&#xff08;True Positive Rate&#xff0c;TPR&#xff09;和假阳…

比亚迪面试

HashMap的底层结构 HashMap 在 Java 中是基于散列算法实现的&#xff0c;其底层主要由数组和链表&#xff08;Java 8 后加入了红黑树&#xff09;构成。当一个元素被加入到 HashMap 中时&#xff0c;会使用散列函数计算出该元素的存储索引&#xff0c;然后将元素存储到对应索引…

elasticSearch使用场景深入详解

Elasticsearch 是一个基于 Lucene 的搜索引擎&#xff0c;它提供了一个分布式、支持多租户的全文搜索引擎&#xff0c;具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是 Elastic Stack 的核心&#xff0c;Elastic Stack 包括 Kibana、Beats 和 Logstash 等组件&#xf…

寒假作业:2024/2/14

作业1&#xff1a;编程实现二维数组的杨辉三角 代码&#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, const char *argv[]) {int n;printf("please enter n:");scanf("%d",&n);int a…

Windows 安装Redis教程

在Windows系统上安装Redis相对简单&#xff0c;主要步骤包括下载、解压、配置和启动Redis服务。以下是一个详细的安装教程&#xff1a; 1. 下载Redis 访问Redis官方网站下载页面&#xff1a;https://redis.io/download选择适用于Windows的安装包&#xff0c;通常有两个版本&a…

蓝桥杯---奇怪的数列

题目描述 从X星截获一份电码&#xff0c;是一些数字&#xff0c;如下&#xff1a; 13 1113 3113 132113 1113122113 .... YY博士经彻夜研究&#xff0c;发现了规律&#xff1a; 第一行的数字随便是什么&#xff0c;以后每一行都是对上一行“读出来” 比如第2行&#xff0c;是对…

springboot开启mybatis二级缓存

我的项目版本号如下&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.8</version><relativePath/> <!-- lookup parent from reposito…

Redis核心技术与实战【学习笔记】 - 31.番外篇:Redis客户端如何与服务器端交换命令和数据

简述 Redis 使用 RESP 协议&#xff08;Redis Serialzation Protocol&#xff09;协议定义了客户端和服务器端交互的命令、数据的编码格式。在 Redis 2.0 版本中&#xff0c;RESP 协议正式称为客户端和服务器端的标准通信协议。从 Redis 2.0 到 Redis 5.0 &#xff0c;RESP 协…

leetcode:55.跳跃游戏

1.解题思路&#xff1a;贪心算法看最大覆盖范围 2.模拟过程&#xff1a; 1.若数组长度等于1&#xff0c;直接返回True 2.循环遍历覆盖范围&#xff0c;选取最大的覆盖范围&#xff1b;若覆盖范围覆盖到了最后一个元素&#xff0c;直接返回true. 3.代码&#xff1a;(贪心无套…

Python struct.pack/struct.unpack 和 encoding/decoding的区别

一直觉得这两对函数有种微妙的对应&#xff0c;两者都涉及到数据的转换&#xff0c;struct.pack/struct.unpack 在二进制数据和 Python 对象之间进行转换&#xff0c;而 encoding/decoding 在文本数据和字节流之间进行转换 下面理一理它们的区别&#xff1a; 目的和用途&#…

ros自定义msg记录

文章目录 自定义msg1. 定义msg文件2. 修改 package.xml3. 修改 CMakeLists.txt4. message_publisher.py5. message_subscriber.py6. 运行 catkin build 测试 自定义msg ros 版本&#xff1a;kinetic 自定义test包的文件结构如下 |-- test | |-- CMakeLists.txt | |-- msg…

spring注解驱动系列--组件注入

一、spring组件注入的几种方式 1、Bean[导入的第三方包里面的组件] 2、包扫描组件标注注解&#xff08;ComponentScans/ComponentScan Controller/Service/Repository/Component&#xff09; 3、Import[快速给容器中导入一个组件] 4、使用Spring提供的 FactoryBean&#xff08…