跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C++算法

LeetCode 替换所有问号与提莫攻击解题思路

LeetCode 1576 替换所有问号要求遍历字符串将问号替换为小写字母且不与前后的字符重复,采用模拟法逐个尝试 a-z 解决。LeetCode 495 提莫攻击需计算中毒总时长,若攻击间隔大于等于中毒时间则累加 duration,否则累加实际间隔时间。两题均涉及模拟与分情况讨论的算法思想。

菩提发布于 2026/3/16更新于 2026/8/2343 浏览
LeetCode 替换所有问号与提莫攻击解题思路

39. 替换所有问号

题目描述: 给你一个字符串 s,请你将 s 中每个出现的 '?' 都替换成一个小写英文字母,使得替换后的字符串不包含连续重复的字符。

算法原理(模拟):

思路:

从前往后遍历整个字符串,找到问号之后,就用 a~z 的每一个字符去尝试替换即可。

模拟解法代码(C++):
class Solution {
public:
    string modifyString(string s) {
        int n = s.size();
        for(int i = 0; i < n; i++) {
            if(s[i] == '?') { // 替换
                for(char ch = 'a'; ch <= 'z'; ch++) {
                    // 当'?'在第一位或者字符不与前面元素相同&&当'?'在最后一位或者字符不与后面元素相同
                    if((i == 0 || s[i-1] != ch) && (i == n-1 || s[i+1] != ch)) {
                        s[i] = ch;
                        break;
                    }
                }
            }
        }
        return s;
    }
};

40. 提莫攻击

题目描述: 在《英雄联盟》的世界中,有一个叫'提莫'的英雄,他的攻击可以让敌方英雄艾希进入中毒状态。现在给定一个非递减的整数数组 timeSeries,其中 timeSeries[i] 表示提莫在 timeSeries[i] 时刻开始对艾希发动攻击,以及一个整数 duration 表示中毒持续时间。请计算艾希总共处于中毒状态的时间。

解法(模拟 + 分情况讨论):

算法思路:

模拟 + 分情况讨论。计算相邻两个时间点的差值:

  • 如果差值大于等于中毒时间,说明上次中毒可以持续 duration 秒。
  • 如果差值小于中毒时间,那么上次的中毒只能持续两者的差值。
C++ 算法代码:
class Solution {
public:
    int findPoisonedDuration(vector<int>& timeSeries, int duration) {
        int n = timeSeries.size(), ret = 0;
        for(int i = 1; i < n; i++) {
            if(timeSeries[i] - timeSeries[i-1] < duration) {
                ret += timeSeries[i] - timeSeries[i-1];
            } else {
                ret += duration;
            }
        }
        // 加上最后一次攻击的中毒时间
        return ret + duration;
    }
};

总结:

替换所有问号(LeetCode 1576)使用模拟方法遍历字符串,遇到问号时用 a-z 字符替换,确保不与相邻字符重复;提莫攻击(LeetCode 495)通过分情况讨论计算中毒总时长:若攻击间隔大于中毒时间则累加 duration,否则累加实际间隔时间。

目录

  1. 39. 替换所有问号
  2. 思路:
  3. 模拟解法代码(C++):
  4. 40. 提莫攻击
  5. 算法思路:
  6. C++ 算法代码:
  7. 总结:
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Dify 本地部署安装教程(Windows + Docker)
  • Python 环境安装与配置 Gurobi 求解器指南
  • OpenClaw 101:从零部署与实战指南
  • Python 入门教程:从基础语法到面向对象编程详解
  • 网络安全领域主流认证体系解析与选择指南
  • Python RabbitMQ 核心原理、模式与实战场景解析
  • PHP 全链路追踪实践:trace_id 生成与透传
  • 基于 Go 的电子病历智能助手与 HIS 对接实战
  • Java 9 至 Java 25:语言演进与技术革新深度解析
  • TradingView 图表库 Web 集成实战:从环境搭建到自定义扩展
  • jQuery 从入门到实战全解:前端高效开发核心
  • Ubuntu 24.04 使用 Docker Compose 本地部署 Whisper 语音识别服务
  • 二分查找算法详解与经典例题实战
  • Python 环境配置及 pip 安装指南
  • PX4 开源飞控系统详解:架构、功能与入门指南
  • Python 环境搭建与 pip 包管理完整指南
  • SmolRTSP:嵌入式系统高效 RTSP 流媒体服务实践
  • C++ 语言基础核心知识点汇总
  • llama-cpp-python 安装配置与性能优化指南
  • Spring Boot 数据仓库与 ETL 工具集成实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online