leetcode 1576. 替换所有的问号(easy)(优质解法)

链接:1576. 替换所有的问号

代码:

class Solution {public String modifyString(String s) {char[] charS=s.toCharArray();int length=charS.length;//遍历找到 ?for(int i=0;i<length;i++){if(charS[i]=='?'){//遍历 a ~ z 选择一个合适的字符来替代 ?for(char ch='a';ch<='z';ch++){if((i==0||ch!=charS[i-1])&&(i==length-1||ch!=charS[i+1])){//当前字符满足要求,可以替换 ?charS[i]=ch;break;}}}}return String.valueOf(charS);}
}

题解:

        通过题意我们要发现一些解题的方向,要将字符串中的 ?改为其他的字符,并且不能存在连续重复的字符,假设 ?所在的下标是 i ,那么 ? 就不能被修改为与 i - 1 和 i + 1 相同的字符

        所以核心的解题思路就是:先遍历字符串,找到 ?,然后再遍历 a ~ z 的字符,找到其中符合条件的字符

        值得注意的是,?所在的位置会有以下 3 种情况:

(1).?a b

(2).a b ?

(3).a b ? c d

        情况(1),? 在第一位,要是去获取 i - 1 下标的字符会出现溢出,所以当 i == 0 时就不需要判断替换的字符是否等于 i -1 的字符了,情况(2)也是一样

        情况(3)就是普遍情况,需要判断替换的字符和 ?之前以及之后的字符是否相同,只有不同才能替换 ?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/298219.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索应用程序的指路明灯:Route 和 Router 入门指南(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

obsidian使用分享

ob对比其他软件 上文提到obsidian&#xff0c;这里对obsidian做一个简要的总结 优点&#xff1a;对比notion&#xff0c;语雀这些软件&#xff0c;内容存储在应用商的服务器上。它是存在本地的。 对比思源笔记。说一下思源笔记的不足。思源是块来控制的&#xff0c;回车就是一…

爬虫响应cookie阿里系案例:某财经

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、响应cookie阿里系特点 cookie中一定有acw_sc__v2清除所有cookie刷新页面时&#xff0c;会自动debugger到设置cookie的文件…

概率中的50个具有挑战性的问题[02/50]:连续获胜

一、说明 我最近对与概率有关的问题产生了兴趣。我偶然读到了弗雷德里克莫斯特勒&#xff08;Frederick Mosteller&#xff09;的《概率论中的五十个具有挑战性的问题与解决方案》&#xff08;Fifty Challenge Problems in Probability with Solutions&#xff09;一书。我认为…

设计模式--命令模式

实验16&#xff1a;命令模式 本次实验属于模仿型实验&#xff0c;通过本次实验学生将掌握以下内容&#xff1a; 1、理解命令模式的动机&#xff0c;掌握该模式的结构&#xff1b; 2、能够利用命令模式解决实际问题。 [实验任务]&#xff1a;多次撤销和重复的命令模式 某系…

ubuntuxu双系统安装+git/g++/vim+pytorch+opencv+yolo+sitl相关学习

multirotor The first day ——12.10 1.install vmware-workstation and ubuntu swap sources and 换输入法 2.learn git github关联远程仓库 3.install and use Typora Git codemeaningmkdir test创建目录cd test进入目录git init初始化仓库ls &#xff1b;ls -ah查看目…

HUAWEI华为笔记本电脑MateBook D 14 2022款 i5 集显 非触屏(NbDE-WFH9)原装出厂Windows11系统21H2

链接&#xff1a;https://pan.baidu.com/s/1-tCCFwZ0RggXtbWYBVyhFg?pwdmcgv 提取码&#xff1a;mcgv 华为MageBookD14原厂WIN11系统自带所有驱动、出厂状态主题壁纸、Office办公软件、华为电脑管家、华为应用市场等预装软件程序 文件格式&#xff1a;esd/wim/swm 安装方式…

Web前端-JavaScript(Dom高级)

文章目录 1.1 自定义属性操作1.1.1 获取属性值1.1.2 设置属性值1.1.3 移除属性值1.1.4 案例一 1.2 节点操作1.2.1 节点概述1.2.2 节点层级1.2.3 父级节点1.2.4 子节点1.2.5 兄弟节点1.2.6 创建节点1.2.7 添加节点1.2.8 删除节点1.2.9 案例二1.2.10 创建元素的三种方式(了解) 1.…

shell 函数的详细用法及应用

简介 本篇文章从函数的特点开始介绍 &#xff0c;教会小白如何定义函数&#xff0c;学习函数中的各种方法&#xff0c;最后整理了一些实际的应用场景来帮助大家学会如何灵活应用。 文章目录如下&#xff1a; 1. 了解什么是shell函数 1.1. 函数的历史 1.2. 函数有哪些特点 2…

MySQL的安装、DBeaver图形化工具

MySQL的安装 DBeaver下载安装 MySQL的安装 在Windows系统中安装MySQL数据库 MySQL官网 下载地址&#xff1a;https://dev.mysql.com/downloads/windows/installer/ MySQL的版本 针对不同的用户&#xff0c;MySQL分为两种不同的版本&#xff1a; 免费&#xff1a; MySQL Com…

java实现深度优先搜索 (DFS) 算法

度优先搜索&#xff08;Depth First Search&#xff0c;DFS&#xff09;算法是一种用于遍历或搜索图或树的算法。这种算法从一个节点开始&#xff0c;沿着一条路径尽可能深地搜索&#xff0c;直到遇到不能继续前进的节点时返回上一个节点&#xff0c;然后继续搜索其他路径。具体…

modetest

modetest modetest 是一个用于显示和测试 Linux 内核模式设置的工具。它通过使用 DRM&#xff08;Direct Rendering Manager&#xff09;接口与显示驱动程序进行通信&#xff0c;可以列出可用的显示模式并测试它们的功能。 作者&#xff1a;炭烤毛蛋 &#xff0c;点击博主了解…