菜鸟的每日力扣系列——1576. 替换所有的问号
系列 所有 替换 每日 菜鸟 力扣 问号
2023-06-13 09:15:51 时间
首先排除特殊情况,字符串长度为1且是‘?’,随意匹配一个小写字母。之后根据 '?' 出现在字符串中的位置分为三种情况:
1、'?'在字符串开头i=0,只需要和后一个元素不一样即可;
2、'?'在字符串末尾i=len(mylist)-1,只需要和前一个元素不一样即可;
3、'?'在中间,需要与两侧相邻的元素不一样。
代码实现如下:
def modifyString(s: str) -> str:
word = ["a", "b", "c"]
mylist = list(s)
n = len(mylist)
if n == 1 and mylist[0] == '?':
mylist[0] = word[0] # 只有一位且是‘?’的情况
else:
for i in range(n):
if i == 0 and mylist[i] == '?': # '?'出现在字符串开头的情况
for c in word:
if c != mylist[i+1]:
mylist[i] = c
break
elif i == n - 1 and mylist[i] == '?': # '?' 出现在字符串结尾的情况
for c in word:
if c != mylist[i-1]:
mylist[i] = c
break
else:
if mylist[i] == '?':
for c in word:
if c != mylist[i-1] and c != mylist[i+1]:
mylist[i] = c
return "".join(mylist)
s = "?zs"
print(modifyString(s)) # azs
END
相关文章
- MySQL杂谈系列
- 域提权漏洞系列分析-Zerologon漏洞分析
- flutter系列之:创建一个内嵌的navigation
- 【愚公系列】2023年02月 .NET CORE工具案例-ToolGood.Words敏感词过滤
- 【愚公系列】2023年03月 Java教学课程 085-Servlet服务器的基本使用
- Go调度系列--调度器实现原理(二)
- Apache Pulsar 技术系列 - Pulsar 总览
- IPTables系列:如何配置Ubuntu 14.04中的IPTables防火墙详解程序员
- Python sort系列详解程序员
- IE安全系列:IE的自我介绍 (I)
- Linux系统系列:一站式了解Linux操作系统的所有知识、技巧和应用。(linux系统系列)
- SeaJS入门教程系列之使用SeaJS(二)