125.验证回文串-力扣(LeetCode)
题目:

解题思路:
首先进行移除非字母数字字符,并将大写字符转换为小写字符的操作。这个过程中,主要利用快慢指针的方式来进行移除操作,通过加32将大写字符转换为小写字符。完成后,将前一半的数据与后一半的数据进行比对。
c库中有专门判断字符的函数,可以简化判断条件(如代码二所示,头文件<ctype.h>),isalnum函数用来判断是否为数字或字母字符,isupper函数用来判断是否为大写字母,类似功能的字符函数还有很多。
代码:
代码一:
bool isPalindrome2(char *s)
{//移除非字母数字字符,并将大写字符转换为小写字符char *fast = s;char *slow = s;while(*fast){if((*fast >= 'a' && *fast <= 'z') || (*fast >= 'A' && *fast <= 'Z') || (*fast >= '0' && *fast <= '9')){if(*fast >= 'A' && *fast <= 'Z'){*fast = *fast + 32;//转换}*slow = *fast;slow++;}fast++;}*slow = '\0';//判断for(int i = 0; i < strlen(s)/2; i++){if(s[i] != s[strlen(s)-i-1])return false;}return true;
}
代码二:
bool isPalindrome(char *s)
{int i = 0, j = 0;while(s[i]){if(isalnum(s[i])){if(isupper(s[i]))//转换{s[j++] = s[i] + 32;}elses[j++] = s[i];}i++;}s[j] = '\0';for(int k = 0; k < strlen(s) / 2; k++){if(s[k] != s[strlen(s)-k-1]){return false;}}return true;
}
相关文章:
125.验证回文串-力扣(LeetCode)
题目: 解题思路: 首先进行移除非字母数字字符,并将大写字符转换为小写字符的操作。这个过程中,主要利用快慢指针的方式来进行移除操作,通过加32将大写字符转换为小写字符。完成后,将前一半的数据与后一半的…...
线程间通信:wait和notify
线程间通信:wait和notify 1、Object的wait和notify方法 Java中的Object类提供了两个重要的方法,用于线程间的通信和同步:wait()方法和notify()方法 wait()方法的定义 方法签名:public final void wait() throws InterruptedEx…...
风险识别和管理的工具
1.风险识别工具和根本原因识别在项目管理中非常重要,常用的工具包括 因果图根本原因识别RCA鱼骨图 因果图 因果图是一种图形工具,用于识别问题或风险的根本原因。它通过将问题或风险因素与可能的根本原因联系起来,帮助团队更深入地了解问…...
qt之QFTP对文件夹(含嵌套文件夹和文件)、文件删除下载功能
一、前言 主要功能如下: 1.实现文件夹的下载和删除,网上很多资料都是单独对某个路径的文件操作的,并不能对文件夹操作 2.实现目标机中含中文名称自动转码,有些系统编码方式不同,下载出来的文件会乱码 3.实现ftp功能…...
为何数据库推荐将IPv4地址存储为32位整数而非字符串?
目录 一、IPv4地址在数据库中的存储方式? 二、IPv4地址的存储方式比较 (一)字符串存储 vs 整数存储 (二)IPv4地址"192.168.1.8"说明 三、数据库推荐32位整数存储方式原理 四、存储方式对系统性能的影响…...
Mybatis框架之责任链模式 (Chain of Responsibility Pattern)
在 MyBatis 框架中,责任链模式 (Chain of Responsibility Pattern) 被广泛应用于多个功能模块中,例如 插件拦截器、SQL 执行流程中的拦截器链、动态 SQL 的解析与处理等。这种设计模式为 MyBatis 提供了高度的扩展性和灵活性,使其能够轻松应对…...
C++ Stack和Queue---单向守护与无尽等待:数据结构的诗意表达
公主请阅 容器适配器容器适配器的特点 栈和队列的模拟实现deque的介绍1. 内存开销较高2.随机访问性能略低于 vector3. 与指针或迭代器的兼容性r4. 不适合用于需要频繁中间插入和删除的场景5. 在特定平台上的实现不一致6. 缺乏shrink_to_fit支持总结 题目 priority_queue 优先级…...
深入理解Java包装类与泛型的应用
今天我将带领大家进入Java包装类和泛型应用的学习。 我的个人主页 我的Java-数据结构专栏 :Java-数据结构,希望能帮助到大家。 一、Java包装类基础 二、Java泛型基础 三、Java包装类与泛型的结合 四、Java泛型进阶 五、Java包装类与泛型实战 一、Ja…...
【机器学习chp4】特征工程
推荐文章1,其中详细分析了为什么L1正则化可以实现特征选择(特征剔除) 【王木头 L1、L2正则化】三个角度理解L1、L2正则化的本质-CSDN博客 推荐文章2,里面详细分析了奇异值分解 【线性代数】矩阵变换-CSDN博客 本文遗留问题&#…...
LeetCode螺旋矩阵
快一个月没刷题了,最近工作有些忙,今天闲下来两小时,刷一道 题目描述 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4…...
第十五届蓝桥杯JAVA的B组题目详情解析
(第一个填空太简单,就不写了,根本不用代码,直接excel计算) 目录 蓝桥杯第二个填空,类斐波那契循环数 蓝桥杯JAVA.b组第三题 -分布式队列(模拟) 食堂(蓝桥杯D题) 编辑 星际旅行(Floyd佛洛依德) 其余的有点变态,感觉学了好像…...
在几分钟内将数据从 Oracle 迁移到 ClickHouse
ClickHouse 是一个开源的面向列的数据库管理系统。它在实时数据处理方面的出色性能显着增强了数据分析和业务洞察力。将数据从 Oracle 迁移到 ClickHouse 可以释放数据在决策中的力量,这是单独使用 Oracle 无法实现的。 本教程介绍如何使用 BladePipe 将数据从 Orac…...
ASP.NET MVC宠物商城系统
该系统采用B/S架构,使用C#编程语言进行开发,以ASP.NET MVC框架为基础,以Visual Studio 2019为开发工具,数据库采用SQL Server进行保存数据。系统主要功能包括登录注册、宠物展示、个人中心、我的订单、购物车、用户管理、宠物类别…...
完整http服务器
目录 背景目标描述技术特点开发环境WWW客户端浏览发展史服务端http发展史http分层概览 背景 http协议被广泛使用,从移动端,pc浏览器,http无疑是打开互联网应用窗口的重要协议,http在网络应用层中的地位不可撼动,是能…...
【专题】2024AIGC创新应用洞察报告汇总PDF洞察(附原数据表)
原文链接:https://tecdat.cn/?p38310 在科技日新月异的今天,人工智能领域正以前所未有的速度发展,AIGC(人工智能生成内容)成为其中最耀眼的明珠。从其应用场景的不断拓展,到对各行业的深刻变革࿰…...
形态学图像处理(Morphological Image Processing)
形态学图像处理(Morphological Image Processing) 前言 本博客为个人总结数字图像处理一课所写,并给出适当的扩展和相应的demo。 写博客跟做 checkpoint 很像,毕竟个人还不能达到那种信手拈来的境界,忘了就是从零开始训练࿰…...
【IDER、PyCharm】免费AI编程工具完整教程:ChatGPT Free - Support Key call AI GPT-o1 Claude3.5
文章目录 CodeMoss 简介CodeMoss 的模型集成如何安装和配置 CodeMossIDER 插件安装步骤 CodeMoss 的实战使用AI 问答功能代码优化与解释优化这段代码解释这段代码 文件上传与对话联网查询与 GPT 助手联网查询GPT 助手 提升开发效率的最佳实践结语更多文献 CodeMoss 简介 CodeM…...
C++11的一些实用特性
1.统一的列表初始化 在C98中,标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。 //统一的列表初始化 struct Date {int year;int month;int day; };void test1() {Date d1 { 2024,11,14 };int array1[] { 1, 2, 3, 4, 5 };int array2[5] { …...
23种设计模式-观察者(Observer)设计模式
文章目录 一.什么是观察者模式?二.观察者模式的结构三.观察者模式的应用场景四.观察者模式的优缺点五.观察者模式的实现(C示例)六.观察者模式的实现(JAVA示例)七.代码解释八.总结 类图: 观察者设计模式类图…...
【CUDA】Branch Divergence and Unrolling Loop
目录 一、避免分支发散 1.1 并行规约问题 1.2 并行规约中的发散 二、UNrolling Loops 一、避免分支发散 控制流有时依赖于 thread 索引。同一个warp中,一个条件分支可能导致性能很差。通过重新组织数据获取模式可以减少或避免 warp divergence。具体问题查看下…...
个人知识库自动化:OpenClaw+Qwen3-32B镜像实现资料智能归档
个人知识库自动化:OpenClawQwen3-32B镜像实现资料智能归档 1. 为什么需要自动化知识管理 作为一个长期被电子文档淹没的技术写作者,我的Downloads文件夹常年保持着2000文件的混乱状态。某次紧急查找会议纪要时,我花了47分钟才在"未命名…...
Python 入门第一课:为什么选择 Python?3 分钟搭建你的第一个程序
一、先聊点人话:为啥要学 Python? 说实话,当初我选编程语言的时候也纠结过。Java?太啰嗦。C?头都大了。JavaScript?浏览器里跑着玩还行… 直到我遇见了 Python。 这玩意儿有多友好? 这么说吧&…...
SDMatte抠图质量评估:Alpha Matte精度与PNG透明通道一致性
SDMatte抠图质量评估:Alpha Matte精度与PNG透明通道一致性 1. SDMatte模型概述 SDMatte是一款专注于高质量图像抠图的AI模型,特别擅长处理以下场景: 主体与背景的精细分离透明或半透明物体的提取复杂边缘的精修处理商品图片的背景去除 该…...
STM32模拟UART实现技术详解
基于STM32的UART模拟实现技术解析1. UART通信基础原理1.1 异步串行通信基础通用异步收发器(UART)作为一种经典的串行通信方式,通过逐位传输实现数据通信。其核心优势在于传输线少、成本低,但相对并行通信速度较慢。异步通信模式下,收发双方的…...
影墨·今颜开源可部署方案:私有化AI影像系统建设白皮书
影墨今颜开源可部署方案:私有化AI影像系统建设白皮书 1. 引言:重新定义AI影像生成标准 在数字影像创作领域,我们经常面临一个困境:AI生成的图片往往带有明显的"塑料感",缺乏真实照片的温度和质感。影墨今颜…...
别再只盯着蓝牙和ZigBee了!用Telink TLSR8258芯片的2.4G私有协议,自己动手做个低功耗遥控器
从零构建2.4G私有协议遥控器:Telink TLSR8258实战指南 当市面上大多数IoT设备还在蓝牙和ZigBee的框架下挣扎时,Telink TLSR8258芯片的2.4G私有协议正在悄然改写低功耗无线通信的规则。我曾在一个智能农业项目中,需要控制200米外的灌溉阀门&am…...
OpenClaw飞书机器人:GLM-4.7-Flash实现智能问答助手
OpenClaw飞书机器人:GLM-4.7-Flash实现智能问答助手 1. 为什么选择OpenClaw飞书GLM组合 去年我接手了一个技术文档整理项目,每天需要处理上百条来自不同渠道的技术咨询。手动回复效率低下,而公有云上的智能客服方案又存在数据安全顾虑。直到…...
Qwen3-4B模型微调指南:提升OpenClaw任务准确率
Qwen3-4B模型微调指南:提升OpenClaw任务准确率 1. 为什么需要微调Qwen3-4B模型 上周我在用OpenClaw整理项目文档时,发现它总是把设计稿和产品需求文档混为一谈。这个看似简单的问题背后,其实是底层Qwen3-4B模型对专业文档分类能力的不足。经…...
Python 3.14 JIT编译器深度调优实战(官方未公开的profile-driven优化链)
第一章:Python 3.14 JIT编译器演进与调优全景概览Python 3.14 引入了实验性但高度可配置的内置 JIT 编译器(代号“Torchlight”),标志着 CPython 首次在标准发行版中集成生产就绪的即时编译能力。该 JIT 并非替代解释器࿰…...
双臂机器人Matlab仿真及程序源码
双臂机器人matlab仿真,程序源码,带注释,带轨迹规划。打开Matlab敲下第10086行机械臂仿真代码,突然发现让两个铁胳膊和谐共舞可比教人类小朋友握手难多了。今天就唠唠怎么用Matlab让双机械臂画出完美轨迹,重点看黄色告警…...
