news 2026/4/16 7:34:32

【力扣】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/4/16 9:26:18

APKMirror终极指南:5步轻松获取安全安卓应用的完整教程

APKMirror终极指南&#xff1a;5步轻松获取安全安卓应用的完整教程 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 在安卓应用生态中&#xff0c;APKMirror作为一个专业的第三方APK文件下载平台&#xff0c;为用户提供了安全可靠的…

作者头像 李华
网站建设 2026/4/16 12:51:58

Notion Linux 原生桌面版:为开源系统打造的专业笔记解决方案

Notion Linux 原生桌面版&#xff1a;为开源系统打造的专业笔记解决方案 【免费下载链接】notion-linux Native Notion packages for Linux 项目地址: https://gitcode.com/gh_mirrors/no/notion-linux 你是否曾经为在Linux系统上无法获得原生的Notion体验而感到困扰&am…

作者头像 李华
网站建设 2026/4/16 9:23:35

iOS设备支持文件终极解决方案:告别Xcode调试困境

作为一名iOS开发者&#xff0c;你是否经历过这样的场景&#xff1a;刚刚升级了手机系统&#xff0c;满怀期待地连接设备准备调试&#xff0c;结果Xcode无情地提示"Device not supported"&#xff1f;&#x1f62b; 这种突如其来的调试中断不仅打乱了开发节奏&#xf…

作者头像 李华
网站建设 2026/4/16 11:04:31

Agent服务上线前必做的7项Docker性能测试,少一项都可能引发生产事故

第一章&#xff1a;Agent服务Docker性能测试的核心意义在现代云原生架构中&#xff0c;Agent服务作为监控、日志采集或安全代理的关键组件&#xff0c;广泛部署于容器化环境中。对其开展Docker性能测试&#xff0c;不仅有助于评估资源消耗与响应延迟&#xff0c;更能提前暴露高…

作者头像 李华
网站建设 2026/4/16 9:24:07

为什么顶尖量子工程师都在用VSCode运行Jupyter模拟内核?真相揭晓

第一章&#xff1a;量子计算与开发环境的演进 量子计算作为下一代计算范式的代表&#xff0c;正逐步从理论研究走向工程实现。随着超导、离子阱和拓扑量子比特等技术路径的不断突破&#xff0c;配套的软件开发环境也在快速演进&#xff0c;为开发者提供了更高效的工具链支持。 …

作者头像 李华
网站建设 2026/4/16 9:21:40

Windows系统安全防护新选择:OpenArk免费反Rootkit工具全面解析

Windows系统安全防护新选择&#xff1a;OpenArk免费反Rootkit工具全面解析 【免费下载链接】OpenArk The Next Generation of Anti-Rookit(ARK) tool for Windows. 项目地址: https://gitcode.com/GitHub_Trending/op/OpenArk 你是否曾担心自己的电脑被恶意软件悄悄控制…

作者头像 李华