首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >菜鸟的每日力扣系列——1576. 替换所有的问号

菜鸟的每日力扣系列——1576. 替换所有的问号

作者头像
才浅Coding攻略
发布于 2022-12-12 17:34:22
发布于 2022-12-12 17:34:22
6340
举报
文章被收录于专栏:才浅coding攻略才浅coding攻略

首先排除特殊情况,字符串长度为1且是‘?’,随意匹配一个小写字母。之后根据 '?' 出现在字符串中的位置分为三种情况:

1、'?'在字符串开头i=0,只需要和后一个元素不一样即可;

2、'?'在字符串末尾i=len(mylist)-1,只需要和前一个元素不一样即可;

3、'?'在中间,需要与两侧相邻的元素不一样。

代码实现如下:

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档