LeetCode如何替换所有问号
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章将为大家详细讲解有关LeetCode如何替换所有问号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。题目给你一个仅包含小写英文字母和 '?' 字符的字符串 s
千家信息网最后更新 2026年11月03日LeetCode如何替换所有问号
这篇文章将为大家详细讲解有关LeetCode如何替换所有问号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
题目
给你一个仅包含小写英文字母和 '?' 字符的字符串 s,请你将所有的 '?' 转换为若干小写字母,使最终的字符串不包含任何 连续重复 的字符。
题目测试用例保证 除 '?' 字符 之外,不存在连续重复的字符。
在完成所有转换(可能无需转换)后返回最终的字符串。如果有多个解决方案,请返回其中任何一个。可以证明,在给定的约束条件下,答案总是存在的。
思路
因为前两天比赛有遇到字符串替换的题,看到这个,和同学讨论了下。
将字符串存放于数组中,遍历,判断其是否为'?';
若当前元素是第一个元素,且是唯一一个元素,那么将其直接替换为'a',
若不唯一,将其替换为与后一位不同的小写字母;
若当前元素是最后一个元素,那么将其替换为与前一位不同的小写字母;
若当前元素处于字符串中间位置,那么将其替换为与前后均不相同的小写字母;
替换的过程:从'a'开始,判断newChar与其前/后字符是否相同,若相同,顺延。
代码
public String modifyString(String s) { if(s == " "){ return "当前字符串为空,请正确输入!"; } char [] c = s.toCharArray(); for(int i = 0; i < s.length(); i++) { if(c[i] == '?') { char newChar = 'a'; while ((i>0 && c[i-1]==newChar) || (idemo
输入:s = "?zs"输出:"azs"
输入:s = "??yw?ipkj?"输出:"acywaipkja"
运行结果
其他解答中的技巧
首尾特殊
可以在字符串首位加空格,这样每次遇到'?',就可以直接将其替换成与前后不同的小写字母,免除了第一个、最后一个、长度为1的特殊判断,;输出start+1至end-1。
简化修改
newChar只要与相邻俩元素不一样即可,可以取任意三个如'a','b','c'作为备选。
关于"LeetCode如何替换所有问号"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
字符
字符串
元素
字母
小写
不同
相同
篇文章
输入
输出
问号
特殊
更多
不错
实用
三个
代码
位置
内容
同学
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技垄断
互联网科技有限公司图片
广州互联网科技公司
互联网科技集团
壕鑫互联网络科技
无线互联网科技
碳银互联网科技有限公司
互联网科技有限公司 翻译
中国互联网金融科技基金
互联网科技公司招聘
云创客互联网科技公司
互联网科技寓意
小米互联网科技园设置
洛阳昕诺飞互联网科技有限公司
畅思互联网科技
普陀区互联网教育科技管理办法
互联网科技职业技能培训学校
马化腾互联网科技教学
数字互联网科技有限公司
盐城市攀科互联网科技有限公司
致骋互联网科技
兼蜜互联网科技
互联网金融和金融科技
深圳市运趣互联网科技有限公司
中国科技互联网公司收入
宁波青枫互联网科技有限公司
互联网科技项目计划书材料类
河南猎农互联网科技有限公司
国大互联网教育科技有限公司薪资
江苏互联网科技小贷