在Python中查找给定字符串中的好字符串程序
假设我们有一个包含大小写英文字母的字符串s。我们将认为一个字符串是好字符串,如果它不具有s [i]和s [i + 1]相邻字符的任何两个地方,其中 –
- 0 <= i <= s的大小 – 2
-
s [i]是小写字母,s [i + 1]是相同字母的大写形式,或者反过来。
要将字符串转换为好字符串,我们可以选择两个相邻的字符,使该字符串变坏并将它们删除。我们将继续进行此过程,直到字符串变为好的(空字符串可以是好的字符串)。我们必须找到使其成为好的之后的字符串。
因此,如果输入是s =”popPpulaBbr”,则输出将是“ popular”,因为首先删除“ p P ”或“ P p ”,然后删除“ Bb”。
要解决这个问题,我们将按照以下步骤进行 –
- res:=新列表
-
对于s中的每个字符ch,执行以下操作
- 如果res不为空,并且最后一个元素在res中与任何一个字母的情况相同,不区分大小写,则
- 从res中剪切最后一个元素
- 否则
- 在res结尾插入ch
- 如果res不为空,并且最后一个元素在res中与任何一个字母的情况相同,不区分大小写,则
- 将存在于res中的每个元素连接起来并将其返回
更多Python相关文章,请阅读:Python 教程
示例(Python)
让我们看一下以下实现,以便更好地理解
def solve(s):
res = []
for ch in s:
if res and res[-1] != ch and res[-1].lower() == ch.lower():
res.pop()
else:
res.append(ch)
return ''.join(res)
s = "popPpulaBbr"
print(solve(s))
输入
"popPpulaBbr"
输出
popular