LeetCode如何替换所有问号
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,这篇文章将为大家详细讲解有关LeetCode如何替换所有问号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。题目给你一个仅包含小写英文字母和 '?' 字符的字符串 s
千家信息网最后更新 2025年01月28日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安全错误
数据库的锁怎样保障安全
广东省高考评卷老师数据库
服务器租赁这个项目可以做吗
昆明网站的数据库用什么设计
山东大学网络安全专生怎么样
Linux服务器搭建和管理
石景山区信息化软件开发平台
空调工程计算机网络技术
把闲置的主机做服务器
周跃计算机三级网络技术
七彩软件开发
数据库2000的注册表
怎么通过窗口读取数据库的数据
数据库出现5125
南京技术管理软件开发
汇丰软件开发
腐蚀被踢出服务器
会计信息网络技术是干什么的
关于中国网络安全的论文题目
cmm 软件开发过程
五一网络安全保障工作
龙岗区网络技术公司法律服务
网络安全与数据安全哪个就业好
电脑怎么设网络安全保护
ibm服务器2003安装
db2新建数据库表
网络安全进军营法纪教育
杭州戴尔霄龙服务器新报价
远程服务器ip
无极云互联网科技有限公司
社区网络安全线