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)就是普遍情况,需要判断替换的字符和 ?之前以及之后的字符是否相同,只有不同才能替换 ?
相关文章:
leetcode 1576. 替换所有的问号(easy)(优质解法)
链接:1576. 替换所有的问号 代码: class Solution {public String modifyString(String s) {char[] charSs.toCharArray();int lengthcharS.length;//遍历找到 ?for(int i0;i<length;i){if(charS[i]?){//遍历 a ~ z 选择一个合适的字符来…...
Advanced IP Scanner - 网络扫描器
Advanced IP Scanner - 网络扫描器 1. Advanced IP ScannerReferences https://www.advanced-ip-scanner.com/cn/ 可靠且免费的网络扫描器可以分析 LAN。该程序可扫描所有网络设备,使您能够访问共享文件夹和 FTP 服务器,(通过 RDP 和 Radmin) 远程控制…...
搜索百度百科官方创建入口,怎么创建更新公司的百度百科词条呢?
在百度搜索百度百科找到百度百科官方创建入口,可以上传并创建公司类的百度百科词条,创建词条后还可以再修改更新百科词条,最终完善好的百度百科词条将会在百度上获得大量曝光。那么百度百科可以怎么创建,下面洛希爱做百科网把十多…...
大数据与人工智能|全面数字化战略与企业数字化转型(第1节 )
要点一:培养跨学科思维 在分析时,需要采用多学科的思维方式 结果不重要,重要的是如何提炼现象、分析问题和得出结论的过程。 1. 介绍了锤子精神和多学科思维方式的重要性。指出了只从自身学科出发解决问题的局限性。 2. 提倡跨学科思维方式&a…...
【四】【C语言\动态规划】地下城游戏、按摩师、打家劫舍 II,三道题目深度解析
动态规划 动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利…...
【大数据存储与处理】开卷考试总复习笔记
文章目录 实验部分一、 HBase 的基本操作1. HBase Shell入门2. HBase创建数据库表3. HBase数据操作4. HBase删除数据库表5. HBase Python基本编程 before二、 HBase 过滤器操作1.创建表和插入数据2.行键过滤器3.列族与列过滤器4.值过滤器5.其他过滤器6.python hbase 过滤器编程…...
HTML 实操试题(一)
创建一个包含标题、段落和链接的基本HTML文档: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><ti…...
创龙瑞芯微RK3568设备树1(修改设备树GPIO和串口)
前言 最近一直在搞3568的东西,涉及到底层的设备树修改,驱动编写等等,忙的焦头烂额的,也没时间往下面写东西了。今天差不多底层的东西快弄完了,把最近的感悟给大家分享下,并且加入点设备树的基础知识。给刚刚…...
R语言【dplyr】——filter保留符合筛选条件的行,以数据的行为单位,创建子集
Package dplyr version 1.1.4 Parameters filter(.data, ..., .by NULL, .preverse FALSE) 参数【.data】:一个数据集(data frame),数据集扩展(比如:tibble),或者 lazy data fra…...
几种串口扩展电路
一、IIC串口扩展电路 LCT200 是一款可以通过 I2C 接口通讯,拓展 2 路独立串口的通讯芯片,同时也支持通过 2 路串口读写 I2C 接口的数据。LCT200 的封装为 TSSOP-20。 主要功能:⚫ 通过对 I2C 接口读写实现拓展 2 路独立串口功能 ⚫ 通过读写…...
实战10 角色管理
目录 1、角色后端接口 2、角色列表查询 2.1 效果图 2.2页面原型代码 2.3 角色api代码 role.js 2.4 查询角色列表代码 4、 新增和编辑角色 5、删除角色 6、分配权限 6.1 分配权限思路 6.2 分配权限回显接口 6.3 分配权限回显前端实现 6.4分配权限后端接口 6.4.1 R…...
Lua的底层原理与C#交互原理浅析【更新中】
目录 lua底层原理浅析 table底层原理浅析 Lua表的C语言定义 原理和实现 userdata lua和C#的交互机制(更新中) 基本介绍 Lua 与 C/C 的数据交互 Lua 调用 C/C 函数 C/C 调用 Lua 函数 基元类型传递 对象类型传递 Lua 调用 C# 总结 网上有很…...
鸿蒙项目二—— 注册和登录
此部分和上篇文章是连续剧 ,如果需要,请查看 一、注册 import http from ohos.net.http; Entry Component struct Reg {// 定义数据:State username: string "";State userpass: string "";State userpass2: string …...
Dijkstra(迪杰斯特拉)算法总结
知识概览 Dijkstra算法适用于解决所有边权都是正数的最短路问题。Dijkstra算法分为朴素的Dijkstra算法和堆优化版的Dijkstra算法。朴素的Dijkstra算法时间复杂度为,适用于稠密图。堆优化版的Dijkstra算法时间复杂度为,适用于稀疏图。稠密图的边数m和是一…...
设计模式?!
如何解决复杂性 链接:不同的设计模式实例代码(更新中) 分解 人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。 抽象 更高层次来讲,人们处…...
Pytorch项目,肺癌检测项目之三
成功获取到数据之后,我们需要将数据放到Pytorch里面去处理,我们需要将其转换成Dataset数据集,方便去使用相同的API。要转换成Dataset数据集需要实现两个方法,方法一: 方法二: 运行比较慢的话,…...
深圳鼎信|输电线路防山火视频监控预警装置:森林火灾来袭,安全不留白!
受线路走廊制约和环保要求影响,输电线路大多建立在高山上,不仅可以减少地面障碍物和人类活动的干扰,还能提高线路的抗灾能力和可靠性。但同时也会面临其它的难题,例如森林火灾预防。今天,深圳鼎信智慧将从不同角度分析…...
【Bash/Shell】知识总结
文章目录 1. 总体认识1.1. Shell概述1.2. 第一个Shell脚本1.3. 注释 2. 变量2.1. 定义变量2.2. 使用变量2.3. 只读变量2.4. 删除变量2.5. 变量类型2.5.1. 字符串变量2.5.2. 整数变量2.5.3. 数组变量2.5.4. 环境变量2.5.5. 特殊变量 3. 输出3.1. echo命令3.2. printf命令 4. 运算…...
单例模式(C++实现)
RAII运用 只能在栈上创建对象 只能在堆上创建的对象 单例模式 设计模式 懒汉模式 解决线程安全 优化 饿汉模式 饿汉和懒汉的区别 线程安全与STL与其他锁...
ElasticSearch 聚合统计
聚合统计 度量聚合:求字段的平均值,最小值,最大值,总和等 桶聚合:将文档分成不同的桶,桶的划分可以根据字段的值,范围,日期间隔 管道聚合:在桶聚合的结果上执行进一步计…...
老板出幻觉了!过度相信 AI,迟早要暴雷…
不怕 AI 出幻觉,就怕用户出幻觉~ 对打工牛马来说,更怕老板出幻觉。①最近,某位后端童鞋忍不了,发帖吐槽公司老板/高层过度迷信“AI 全自动写代码”。他表示这会留下维护隐患,难出好产品…… 迟早完蛋。PS:你…...
《Sysinternals实战指南》进程和诊断工具学习笔记(8.15):实战案例|内存狂涨 / 句柄泄漏怎么查?用 VMMap + Handle + ListDLLs 三步定位
🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...
核控卡件综合测试平台
1)系统简介核控卡件综合测试平台具备DI、DO、AI、AO四类IO信号的采集/输出功能以及串口、网口的通信功能,主要用于对综合测试平台及样机的功能测试提供支撑。综合测试平台集成测试设备的对外总线接口,主要包括RS422、以太网、AI、AO、DI、DO等…...
你的RAR5密码有多安全?我用hashcat掩码攻击实测了一下
RAR5密码安全实测:从暴力破解到防御策略 当你在深夜赶工,把重要文件打包成加密压缩包发送给同事时,是否想过这个密码能撑多久?上周我给自己设置了一个看似安全的8位数字密码,结果在咖啡还没凉透前就被破解了。这不是危…...
为什么顶尖思想家团队只用Perplexity搜名言?——独家披露哈佛肯尼迪学院实测数据:准确率92.4%,响应延迟<1.7s(附配置白皮书)
更多请点击: https://kaifayun.com 第一章:为什么顶尖思想家团队只用Perplexity搜名言?——独家披露哈佛肯尼迪学院实测数据:准确率92.4%,响应延迟<1.7s(附配置白皮书) 在哈佛肯尼迪学院政…...
PotPlayer字幕翻译插件终极指南:5分钟实现免费实时字幕翻译
PotPlayer字幕翻译插件终极指南:5分钟实现免费实时字幕翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 还在为外语视频…...
权限管理测试
在 RuoYi(若依)系统中,要实现一个自定义接口的权限验证,通常需要遵循 “后端定义 -> 前端配置 -> 角色分配 -> 测试验证” 的流程。以下是具体的实施步骤及详细解析:第一步:后端定义接口并添加注解…...
Ubuntu 20.04桌面管理器搞乱了?别慌,手把手教你找回原版GNOME桌面(附LightDM/GDM3切换命令)
Ubuntu 20.04桌面环境异常修复指南:从混乱到秩序 系统启动后突然发现熟悉的GNOME桌面消失了,取而代之的是一个陌生的登录界面和错乱的窗口布局——这可能是许多Ubuntu新手在尝试自定义系统时遇到的噩梦。本文将带你深入理解Linux显示管理器的运作机制&am…...
科研学术篇---文献引用格式
面对五花八门的引用格式,你只需要记住一个核心:不同的学科,就像不同的“方言区”,各自有一套约定俗成的引用“语法”。学会识别和使用它们,是学术写作的基本功。下面通俗地介绍最常见的几种格式,帮你一眼看…...
Claude Code 配置手册
验证已经安装node和npmnode -v npm -v如果显示版本号且 ≥ 18.0.0,则说明安装成功安装CLInpm i -g anthropic-ai/claude-codelatest npm i -g openai/codexlatest npm i -g google/gemini-clilatest根目录下新建 settings.json 配置文件vim ~/.claude/settings.json…...
