LeetCode如何替换所有问号
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章将为大家详细讲解有关LeetCode如何替换所有问号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。题目给你一个仅包含小写英文字母和 '?' 字符的字符串 s
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
主要的无线网络技术有哪几种
网络技术趋势
赣州导航软件开发
数据库 服务器时间
软件开发公司电话多少
三星电视墙管理服务器SSM
java做数据库的源代码
上海超陵软件开发
软件开发方法是一种
易语言edb数据库操作
深信服网络安全提示
栖霞平台软件开发企业
数据库是否大小写通用
服务器等安全隐患做检查
互联网科技公司海报语
长宁区电商软件开发厂家哪个好
广州网络安全应急演练排名
西城区智能软件开发服务供应
dhcp服务器老自动开启
mysql数据库数据分类显示
数据库视频怎么提取路径
惠普g5 服务器 内存
数据库管理两方面安全
大并发数据库瓶颈
php可以做服务器吗
数据库怎么进编辑模式
太原新华互联网科技学校要多少分
java什么时候用到数据库事务
腾讯云 软件开发公司
分离数据库需要登录吗