news 2026/6/23 23:25:40

【力扣】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/6/23 6:12:14

Cirq代码补全进阶指南(函数提示使用全解析)

第一章&#xff1a;Cirq代码补全的函数提示概述在量子计算开发中&#xff0c;Cirq 作为 Google 推出的开源框架&#xff0c;广泛用于构建和模拟量子电路。高效的代码补全与函数提示功能对于提升开发效率至关重要&#xff0c;尤其是在处理复杂量子门操作和参数化电路时。现代集成…

作者头像 李华
网站建设 2026/6/23 21:05:02

STM32 USB摄像头连接技术深度解析

STM32 USB摄像头连接技术深度解析 【免费下载链接】STM32_HOST_UVC_Camera Example of connecting USB Web camera to STM32F4 USB HOST 项目地址: https://gitcode.com/gh_mirrors/st/STM32_HOST_UVC_Camera 请基于STM32_HOST_UVC_Camera项目&#xff0c;创作一篇技术文…

作者头像 李华
网站建设 2026/6/23 21:07:29

从开发到上线:多模态Agent Docker存储配置全流程(附最佳实践模板)

第一章&#xff1a;多模态Agent与Docker存储概述 在现代云原生架构中&#xff0c;多模态Agent作为集成了视觉、语音、文本等多类型感知能力的智能服务代理&#xff0c;正逐步成为边缘计算与自动化运维的核心组件。这类Agent通常以容器化方式部署&#xff0c;依赖Docker提供的隔…

作者头像 李华
网站建设 2026/6/23 19:20:45

【AI工程化落地必看】:多模态Agent Docker测试用例设计的8项军规

第一章&#xff1a;多模态 Agent 的 Docker 测试用例概述在现代软件开发中&#xff0c;多模态 Agent 作为处理文本、图像、语音等多种输入形式的智能系统&#xff0c;其测试环境的一致性至关重要。Docker 提供了轻量级容器化解决方案&#xff0c;能够封装 Agent 及其依赖项&…

作者头像 李华
网站建设 2026/6/23 21:04:59

第十九篇:多租户架构:数据隔离与资源配额

📋 本文概览 学习目标: 理解多租户架构的核心概念和设计模式 掌握三种主流数据隔离策略的实现 学会使用PostgreSQL Row-Level Security(RLS) 实现细粒度的资源配额管理系统 构建完整的租户计费统计模块 掌握多租户系统的安全最佳实践 技术栈: PostgreSQL(数据库 + RLS)…

作者头像 李华
网站建设 2026/6/22 23:24:21

VLN-CE视觉语言导航实战:从零开始构建智能导航系统

VLN-CE视觉语言导航实战&#xff1a;从零开始构建智能导航系统 【免费下载链接】VLN-CE Vision-and-Language Navigation in Continuous Environments using Habitat 项目地址: https://gitcode.com/gh_mirrors/vl/VLN-CE 想要让机器人听懂你的指令并自主导航吗&#xf…

作者头像 李华