DeepSeek    LeetCode 3777. 使子字符串变交替的最少删除次数 Python3实现
没问题这是 LeetCode 3777 的 Python 线段树解法。核心思路完全一致通过线段树维护每个区间的左端点字符、右端点字符以及最小删除次数合并时只需检查左右相邻字符是否相同。pythonfrom typing import Listclass Solution:def minDeletions(self, s: str, queries: List[List[int]]) - List[int]:n len(s)arr list(s) # 方便原地修改字符tree [None] * (4 * n 5) # 线段树数组每个节点存 (左字符, 右字符, 删除次数)# ---------- 合并两个相邻区间 ----------def merge(left, right):if left is None:return rightif right is None:return leftlc, rc, cnt left[0], right[1], left[2] right[2]# 左区间的右端点 和 右区间的左端点 相同则必须在交界处删掉一个字符if left[1] right[0]:cnt 1return (lc, rc, cnt)# ---------- 建树 ----------def build(idx, l, r):if l r:tree[idx] (arr[l], arr[l], 0)returnmid (l r) // 2build(idx * 2, l, mid)build(idx * 2 1, mid 1, r)tree[idx] merge(tree[idx * 2], tree[idx * 2 1])# ---------- 单点更新翻转字符 ----------def update(idx, l, r, pos):if l r:# A - B 翻转arr[l] B if arr[l] A else Atree[idx] (arr[l], arr[l], 0)returnmid (l r) // 2if pos mid:update(idx * 2, l, mid, pos)else:update(idx * 2 1, mid 1, r, pos)tree[idx] merge(tree[idx * 2], tree[idx * 2 1])# ---------- 区间查询 ----------def query(idx, l, r, ql, qr):# 完全覆盖if ql l and r qr:return tree[idx]mid (l r) // 2# 只在左半部分if qr mid:return query(idx * 2, l, mid, ql, qr)# 只在右半部分if ql mid:return query(idx * 2 1, mid 1, r, ql, qr)# 跨越左右两部分需要合并left_res query(idx * 2, l, mid, ql, qr)right_res query(idx * 2 1, mid 1, r, ql, qr)return merge(left_res, right_res)# ---------- 处理查询 ----------build(1, 0, n - 1)ans []for q in queries:if q[0] 1: # 更新操作[1, index]update(1, 0, n - 1, q[1])else: # 查询操作[2, l, r]res query(1, 0, n - 1, q[1], q[2])ans.append(res[2])return ans 核心要点提醒1. 合并逻辑left.del right.del (1 if left.rc right.lc else 0) 是解题关键因为只有相邻边界会互相影响。2. 复杂度建树 O(n)每次更新或查询均为 O(log n)总复杂度 O((n q) log n)完美适配 10^5 数据量。3. 索引说明本解法默认 queries 中的下标是 0-basedLeetCode 标准如果你的环境是 1-based记得把更新和查询的索引都减 1。如果对线段树合并的推导还有疑问或者想看看其他写法比如树状数组可以随时告诉我我再给你展开讲讲。

相关新闻

解放双手!三月七小助手让你的星穹铁道日常自动化

解放双手!三月七小助手让你的星穹铁道日常自动化

解放双手!三月七小助手让你的星穹铁道日常自动化 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏:星穹铁道》中重复的日常任务感…

2026/10/13 18:55:33 阅读更多 →
三月七小助手:重新定义你的星穹铁道游戏时间管理

三月七小助手:重新定义你的星穹铁道游戏时间管理

三月七小助手:重新定义你的星穹铁道游戏时间管理 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏:星穹铁道》中繁琐的日常任务感…

2026/10/10 2:48:19 阅读更多 →
2026年AI创业新方向:BBWEYY GEO优化系统招商机会解析,含零代码SAAS、AI编程、源码定制交付

2026年AI创业新方向:BBWEYY GEO优化系统招商机会解析,含零代码SAAS、AI编程、源码定制交付

2026 AI创业观察2026年AI创业新方向:BBWEYY GEO优化系统招商机会解析生成式AI搜索改变企业获客方式,也带来新的代理服务市场AI搜索正在从新鲜功能变成真实决策入口当用户直接向AI询问品牌和服务商,企业开始关注自己是否出现、是否准确以及为何…

2026/10/10 22:20:49 阅读更多 →

最新新闻

Nano Banana 2.1降价背后:API账单未减半的三大原因

Nano Banana 2.1降价背后:API账单未减半的三大原因

Nano Banana 2.1降价了,价格直接腰斩。按常理想,原来一个月花100元的API调用费,现在应该50元就够了。可我这几个月盯着账单数据,发现事情远没有这么简单——有些月份总花费只降了10%出头,甚至有一个周五的峰值账单比降…

2026/10/13 19:39:21 阅读更多 →
Git四部曲:add、commit、remote、push的本质与实操

Git四部曲:add、commit、remote、push的本质与实操

1. 项目概述:为什么“四部曲”这个说法在Git实操中如此根深蒂固你刚学Git时,是不是也听过这句话:“上传文件就四步——add、commit、remote、push”?我第一次带某高校开源社团做代码托管训练时,发现92%的新人把这四步当…

2026/10/13 19:39:20 阅读更多 →
数学建模B题穿越沙漠:Matlab动态规划源码拆解与调优

数学建模B题穿越沙漠:Matlab动态规划源码拆解与调优

简介:面向数学建模2020年B题的Matlab源码包,适合正在备战建模竞赛、需要参考完整赛题编程实现的学生和培训团队。资源围绕四关递进式求解展开,重点解决第二关双地图双村庄下的矿山与补给选择、第三四关天气不确定时的路线规划,并对…

2026/10/13 19:39:20 阅读更多 →
dlib 19.20.0 VS2019 预编译包:免编译配置与集成避坑指南

dlib 19.20.0 VS2019 预编译包:免编译配置与集成避坑指南

简介:这是一份针对Windows 64位平台的dlib 19.20.0预编译资源包,采用VS2019(msvc1928)编译的release版本,面向需要在C项目中快速集成dlib的开发者,适用于图像处理、机器学习和计算机视觉等场景。包内共1032…

2026/10/13 19:39:20 阅读更多 →
两堵墙之间:数据不出域与云端协同的六次门禁迁移

两堵墙之间:数据不出域与云端协同的六次门禁迁移

如果你也站在“数据不出域”和“模型效果跟不上”这两堵墙之间犹豫过,那这个标题应该能让你会心一笑。我估计不少同行都有过类似的阶段:本地推理服务器与云端协同,听起来像一句无比正确的废话,真落地起来才知道,单是“…

2026/10/13 19:39:20 阅读更多 →
Cursor额度重置教程:设备指纹清理实现合规续杯

Cursor额度重置教程:设备指纹清理实现合规续杯

简介:本资源是面向软件开发者的 Cursor 编辑器 11 月续杯实战源码包,聚焦解决免费用户模型调用受限、账号续期繁琐等实际痛点,适用于中初级开发者快速提升 AI 编程效率。压缩包共 3 个文件,含 .inscode(Cursor 插件配置…

2026/10/13 19:38:20 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →