Valid Palindrome问题及解法

2023-11-14

问题描述:

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

示例:

"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.


问题分析:

求解一个字符串是否为回文字符串。这里要注意,字符串处理常用的几个函数----isalnum 和 tolower函数,它们引用自“cctype”头文件。

主要解法还是两个指针遍历,寻找有效字符,对比是否符合回文字符串要求(这里忽略大小写)。


过程详见代码:

class Solution {
public:
    bool isPalindrome(string s) {
        int begin = 0, end = s.length() - 1;
        while(begin < end)
        {
        	if(!isalnum(s[begin])) begin++;
			else if(!isalnum(s[end])) end--;
			else{
				if (tolower(s[begin++]) != tolower(s[end--])) return false;
			}
		}
		return true;
    }
};


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Valid Palindrome问题及解法 的相关文章

  • myisamchk命令使用总结

    author sakte time 2012 02 28 myisamchk命令使用总结 myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查 修复 优化他们 1 常用于myisamchk的检查选项 information
  • 自定义ViewGroup实现控件自动换行

    首先看效果如下 首先我们需要自定义ViewGroup 重写onMeasure和onLayout将布局摆放好然后在通过适配器添加子view 代码如下 public class MyViewGroup extends ViewGroup Lis
  • jetson nano安装mqtt库

    把包放入Work下 sudo apt get update sudo apt get install build essential gcc make cmake cmake gui cmake curses gui sudo apt ge
  • 如何在Kubernetes集群中使用kubectl工具来进行管理多个外部K8S集群接入与资源操作?...

    关注 WeiyiGeek 公众号 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 本章目录 0x03 Kubernetes 中多集群接入管理实践 1 本地集群创建指定用户管理集群 2 外部集群创建指定用户管理集群 原文
  • linux-vmware tools安装与cdrom挂载

    前述 昨天想直接复制虚拟机centos系统中命令行的内容到主机的txt文档上进行保存 发现不能实现虚拟机与主机之间的直接通讯 后来查资料发现原来是由于我的虚拟机没有安装vwmare tools的缘故 一个下午查资料下来 搞定了cdrom镜像
  • [ Android 编译 ] 如果不指定LOCAL_CERTIFICATE,默认使用哪个key进行签名

    Android 编译 如果不指定LOCAL CERTIFICATE 默认使用哪个key进行签名 尊重原创 转载请注明出处 创作不易 如有帮助请点赞支持 参考 Android系统签名简介 开发系统应用时 通常情况下我们都会在 Android
  • C++详细学习笔记(一)

    首先 本次学习主要参考的书籍是C Primer Plus第六版 为了方便今后参阅 故写下该学习笔记 C 是在C语言基础上开发的一种集面向对象编程 泛型编程和过程化编程于一体的编程语言 是C语言的超集 一 预备知识 C 有三件法宝 1 继承了
  • 计算机系统(四)处理器体系结构

    现代微处理器可以称得上是人类创造的最复杂的系统之一 一块手指甲大小的硅片上 可以容纳一个完整的高性能处理器 大的高速缓存 以及用来连接到外部设备的逻辑电路 到目前为止 我们看到的计算机系统只限于机器语言程序级 我们知道处理器必须执行一系列指
  • 2021-03-07

    昨天 拳王分享了一篇 1个被严重低估的暴利项目 竟多达7种变现方式 玩转1个轻松月入过万 揭秘7种可变现方式的被严重低估的暴利项目 今天 我们分享的是 1个简单至极又赚钱到发指的项目 有人靠它年入7位数 容易可复制 今天分享的是一个极为简单
  • mysql case when多个参数结果

    查看所有学生的姓名班级 如果班级为1表示一年级 2表示二年级 3表示三年级 select s StudentName CASE WHEN s GradeId 1 THEN 一年级 WHEN s GradeId 2 THEN 二年级 WHEN
  • 【NLP】每个NLP工程师都应该知道的10 种不同的 NLP 技术

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • CCNP-冗余链路中的广播风暴、多帧复制、地址表的不稳定

    STP协议 当网络中存在备份链路时 只允许主链路激活 如果主链路因故障而断开后 备用链路才会被打开 广播风暴 在没有避免交换环路措施的情况下 每个交换机都无穷无尽的转发广播帧 广播流量破坏了正常的通信流 消耗了带宽和交换机的CPU资源 直至
  • python一行输出多个空格_python 在同一行依次输入三个值a,b,c,用空格分开,输出 b*b-4*a*c的值...

    拒绝回答一系列代码细节 自行百度学习对应函数 import re import math print Input four numbers seperated by scape enter for ending input myinputs
  • 如何优化算法提高卷积神经网络的泛化能力

    卷积网络的优化方式 方法 说明 使用更多数据 在有条件的前提下 尽可能多地获取训练数据是最理想的方法 更多的数据可以让模型得到充分的学习 也更容易提高泛化能力 使用更大批次 在相同迭代次数和学习率的条件下 每批次采用更多的数据将有助于模型更
  • ZYNQ 7000的硬件SPI控制器配置为三线制SPI

    使用zynq去做一些AD DA的操作时候有些只支持三线制的SPI那么我们如何使用PS端的控制器EMIO到PL端实现3线制呢 以上是SPI0的接口信号 我们可以把PL侧的三线制的SDIO信号 inout 通过一个IOBUF原语进行转换出in
  • 数字电路的逻辑符号

  • Mybatis框架之解决列名(表中的字段名称)和实体类中的属性名不一致

    查询数据的时候 查不到userName的信息 原因 数据库的字段名是user name 而POJO中的属性名字是userName 两端不一致 造成mybatis无法填充对应的字段信息 修改方法 在sql语句中使用别名 解决方案1 在sql语

随机推荐

  • 深入理解CRITICAL_SECTION

    http www cnblogs com dirichlet archive 2011 03 16 1986251 html 摘要 临界区是一种防止多个线程同时执行一个特定代码节的机制 这一主题并没有引起太多关注 因而人们未能对其深刻理解
  • Hive其他优化

    一 关联优化器 在Hive的一些复杂关联查询中 可能同时还包含有group by等能够触发shuffle的操作 有些时候shuffle操作是可以共享的 通过关联优化器选项 可以尽量减少复杂查询中的shuffle 从而提升性能 set hiv
  • GPU显存问题-解决Failed to get convolution algorithm. This is probably because cuDNN failed to initialize

    GPU显存问题 使用服务器跑深度学习代码时出现了这样的问题 Failed to get convolution algorithm This is probably because cuDNN failed to initialize so
  • Docker私有仓库搭建与界面化管理

    一 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方 我们可以在上面找到我们想要的镜像 也可以把我们自己的镜像推送上去 但是有时候我们的使用场景需要我们拥有一个私有的镜像仓库用于管理我们自己的镜像 这个可以通过
  • 动态定义数组

    首先 为什么需要动态定义数组呢 这是因为 很多情况下 在预编译过程阶段 数组的长度是不能预先知道的 必须在程序运行时动态的给出 但是问题是 c 要求定义数组时 必须明确给定数组的大小 要不然编译通不过 如 int Array 5 正确 in
  • android频响曲线图,EQ 频响曲线

    import android annotation SuppressLint import android content Context import android graphics Canvas import android grap
  • 利用matplotlib绘制折线图:CSV格式

    熬过初学阶段的不适和挫败感 我们其实完全可以掌握一个全新的领域 本文为 python编程 从入门到实践 以下简称参考书 中第16章 下载数据中的内容 利用matplotlib绘制最高及最低气温折线图 在此整理为笔记 一为温习 二为备份 以便
  • 深度优先搜索详解 C++实现

    DFS 全文大概四千字左右 如果您初学DFS相信会对您会有很大的帮助 能力有限 很多术语不够专业 理解万岁 二叉树的深度优先搜索 二叉树的概念这里就不细谈了 使用数组来存储二叉树 根结点从1开始 方便计算 设父节点的下标为n 那么左儿子的下
  • RabbitMQ的消息应答、重新入队、持久化

    思考 假如我们的消费者正在处理一个任务 这个任务处理的过程中 突然这个消费者宕机了 导致这个任务没有完成 然而RabbitMQ队列却把这个任务从队列中删除了 那么这个任务就丢失了 改如何解决 消息应答 为了保证消息在发送过程中不丢失 rab
  • 【疑难】以指针赋值,形成数组形式

    include
  • Python项目开发:Flask基于Python的天气数据可视化平台

    目录 步骤一 数据获取 步骤二 设置Flask应用程序 步骤三 处理用户输入和数据可视化 步骤四 渲染HTML模板 总结 在这个数字化时代 数据可视化已经成为我们理解和解释信息的重要手段 在这个项目中 我们将使用Python语言来开发一个基
  • Anaconda的下载步骤

    输入网站 https www anaconda com 进去之后 点击 get started 然后点击如下图所示的 Install Anaconda Individual Edition 然后点击 Download 选择Windows下面
  • AI图片生成Stable Diffusion环境搭建与运行

    Stable Diffusion是一种基于扩散过程的生成模型 由Ge et al 在2021年提出 该模型利用了随机变量的稳定分布 通过递归地应用扩散过程来生成高质量的图像 与其他生成模型相比 Stable Diffusion在生成高质量的
  • c++中别名的定义 using、#define、typedef、typename、namespace的使用

    typedef typename define namespace using区别 1 关键字typedef定义别名 2 typename 3 文本替换宏define 4 using 5 namespace 使用在命名空间上 1 关键字ty
  • k8s初级实战09--Secret

    k8s初级实战09 Secret 1 基础概念 2 常见用法 2 1 创建 secret 2 2 使用 secret 2 3 imagePullSecret 控制镜像访问权限 3 注意事项 4 说明 1 基础概念 Secret 对象类型用来
  • HP惠普服务器做RAID

    安装Raid 10 综合考虑后 使用四块sas硬盘配置Raid10 1 按开电源 废话 2 进入raid配置 3 创建raid raid 阵列 4 保存raid F8保存配置 回车下一步 5 查看raid 查看Raid 4 怎么安装系统 1
  • [LeetCode-202]-Happy Number-LeetCode 30天挑战赛-2

    文章目录 题目相关 Solution 题目相关 题目解读 给定一个正数 判断该数是否是快乐数 快乐数定义 将该数进行拆分 拆分后的各个数值的平方求和 求和的结果进行如下判断 该数是否为1 或者该数包含在一个循环中无休止地循环 如果数值是1就
  • android获取string.xml的值

    为什么需要把应用中出现的文字单独存放在string xml文件中呢 一 是为了国际化 当需要国际化时 只需要再提供一个string xml文件 把里面的汉子信息都修改为对应的语言 如 English 再运行程序时 android操作系统会根
  • 6、hilens-only 手势识别控制 竞速小车

    hilens only 手势识别控制 竞速小车 hilens only 手势识别控制竞速小车 1 网络配置 2 hilens 手势识别 3 hilens控制台代码 hilens only 手势识别控制竞速小车 1 网络配置 Address
  • Valid Palindrome问题及解法

    问题描述 Given a string determine if it is a palindrome considering only alphanumeric characters and ignoring cases 示例 A man