news 2026/4/3 4:57:50

【力扣】917. 仅仅反转字母

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【力扣】917. 仅仅反转字母

解题思路

算法:双指针–左右指针
场景分类:对称操作类问题
思路:
左指针left指向字符串开头,右指针right指向字符串末尾

通过内层while循环,使得左指针left和右指针right指向的字符都是英文字母。随后交换两指针指向字符的位置

交换操作结束后,要让左右指针各移动一步,进而找下一组字母

最后,返回处理后的字符串


思考

1. 本题中双指针的作用?
本题要求将字符串中出现字母的位置反转

那么双指针的作用就是找到一组位置正好相反的字母

2. 为什么在交换操作完成后左右指针要各移动一步?
在交换操作完成后,左右指针指向的字符均是字母

下一步我们应该找到下一组位置相反的字母。但是现在左右指针已经指向了字母,如果不各移动一步,那么内层的两个while循环将永远不会工作。此时左右指针会一直停留在第一组字母的位置,一直进行交换操作。

这样就会导致左右指针无法找到下一组字母,反而陷入到了死循环,导致程序超时。

(当然,因为做该题时,距离上一次刷题过了好久时间,所以也有这个原因导致没有想到该问题)


代码

classSolution{public:boolisEnglish(charch){// 判断字符是否为英文字母if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))returntrue;returnfalse;}stringreverseOnlyLetters(string s){intleft=0,right=s.length()-1;// 左右指针while(left<right){// 让左右指针指向英文字母while(left<right&&!isEnglish(s[left]))left++;while(left<right&&!isEnglish(s[right]))right--;// 左右指针指向英文字母后,交换两字符swap(s[left],s[right]);// (第一次没想到,导致超时)// 左右指针各移动一步,找下一个英文字母left++;right--;}returns;}};

收获

  1. 体会该题双指针的作用
  2. 在特定情况下,要有左右指针各移动一步的操作
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/28 10:03:58

AI陪伴玩具

分析维度企业/产品核心定位产品形态核心技术目标用户价格区间市场表现情感陪伴萌宠型Ropet&#xff08;萌友智能&#xff09;桌面毛绒萌宠机器人&#xff0c;主打“养成式情感交互”巴掌大小毛绒玩具&#xff08;可站立/趴卧&#xff09;&#xff0c;OLED眼球屏1. 多模态情绪识…

作者头像 李华
网站建设 2026/3/31 17:09:22

5分钟掌握ViewerJS事件委托:彻底解决动态图片内存泄漏难题

你是否遇到过这样的场景&#xff1a;在图片画廊中动态添加新图片后&#xff0c;点击事件完全失效&#xff0c;用户交互体验大打折扣&#xff1f;传统的事件绑定方案需要为每个新元素重复绑定事件&#xff0c;不仅代码冗余&#xff0c;还会导致内存泄漏和性能下降。ViewerJS通过…

作者头像 李华
网站建设 2026/3/31 12:42:23

Howler.js音频开发终极指南:从入门到精通的10个实用技巧

Howler.js音频开发终极指南&#xff1a;从入门到精通的10个实用技巧 【免费下载链接】howler.js Javascript audio library for the modern web. 项目地址: https://gitcode.com/gh_mirrors/ho/howler.js 作为现代Web音频处理的核心库&#xff0c;howler.js简化了复杂的…

作者头像 李华
网站建设 2026/4/1 20:50:56

Vim插件管理器VAM:5个常见问题终极解决方案

Vim插件管理器VAM&#xff1a;5个常见问题终极解决方案 【免费下载链接】vim-addon-manager manage and install vim plugins (including their dependencies) in a sane way. If you have any trouble contact me. Usually I reply within 24 hours 项目地址: https://gitco…

作者头像 李华
网站建设 2026/4/2 1:18:31

IDM无限试用激活脚本:实现永久免费使用的完整指南

IDM Activation Script&#xff08;IAS&#xff09;是一个开源工具&#xff0c;专门用于重置Internet Download Manager的试用期。该脚本通过注册表锁定技术实现IDM的长期试用功能&#xff0c;让用户能够持续享受这款高效下载工具的全部特性。 【免费下载链接】IDM-Activation-…

作者头像 李华
网站建设 2026/3/31 14:54:05

【Q#量子编程调试利器】:如何在VSCode中实现代码覆盖率精准分析

第一章&#xff1a;Q#量子编程调试利器概述Q# 是微软推出的专为量子计算设计的高级编程语言&#xff0c;与 .NET 生态深度集成&#xff0c;支持在经典计算环境中模拟和调试量子算法。为了提升开发效率&#xff0c;Q# 提供了一套强大的调试工具链&#xff0c;帮助开发者定位量子…

作者头像 李华