Python字符串处理程序:查找有效字符串


假设我们有一个包含大小写英文字母的字符串s。我们将一个字符串视为有效字符串,如果它没有任何两个相邻字符s[i]和s[i + 1]满足以下条件:

  • 0 <= i <= 字符串s的长度 - 2

  • s[i]是小写字母,而s[i + 1]是相同的字母但大写,反之亦然。

为了将字符串转换为有效字符串,我们可以选择两个相邻的字符(它们使字符串无效)并将其删除。我们将继续此过程,直到字符串变为有效字符串(空字符串也可以是有效字符串)。我们必须找到使字符串变为有效字符串后的结果。

因此,如果输入类似于s = "popPpulaBbr",则输出将为"popular",因为首先删除"pP"或"Pp",然后删除"Bb"。

为了解决这个问题,我们将遵循以下步骤:

  • res := 一个新的列表

  • 对于s中的每个字符ch,执行以下操作:

    • 如果res不为空,并且res的最后一个元素与ch的大小写相同,则

      • 从res中删除最后一个元素

    • 否则,

      • 将ch插入到res的末尾

  • 连接res中存在的每个元素并返回它

示例 (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

更新于:2021年5月17日

浏览量:1K+

启动您的职业生涯

完成课程获得认证

开始学习
广告