2021-09-18 力扣125-验证回文串

该博客介绍了如何验证一个字符串是否为回文串,忽略了标点符号、空格和大小写。通过设置两个指针,从字符串两端开始比较字符,如果遇到不相等的字符或无效字符则返回false,反之则是回文串。
摘要由CSDN通过智能技术生成

验证回文串

题目解析

在这里插入图片描述

题目给定一个字符串,让我们判断字符串是否为回文串,可忽略标点符号、空格、大小写区别。

ps:回文串特点类似于“对称”,例:“abcdedcba”。

所以,左右分别设一个指针。若左右对应的有效字符(字母或数字)相等,则两边的指针同步向里移动。一旦遇到不等情况,则说明不符合“回文串”的特点,返回false。

代码实现

在进行左右指针所指字符的比较相等之前,应先考虑需要忽略的问题。

  1. 字母大小写问题:需要对大小写字母进行统一(这里采用统一成小写字母),以便于后续对字符是否相等进行判断。这里封装了一个 tolower() 函数用来转换大小写。通过ASCII码来判断是否为大写字母,若是,则转换为小写。若为其他字符则不需要改变。
  2. 判断是否为有效字符问题:这里封装成了isvalid()函数,若字符的ASCII码在48-57(数字范围)或者97-122(小写字母范围)之间,说明是有效字符,则返回true,否则返回false。ps:没有考虑字符ASCII码是否在65-90(大写字母范围)之间,是因为主函数中的算法在取得左右端字符时就将其已经转化为小写字母了,所以没有必要。
  3. 忽略其他无效字符:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值