在 Python 中从给定字符串中找到一个好的字符串的程序

假设我们有一个包含大小写英文字母的字符串 s。我们将认为一个字符串是一个没有任何两个相邻字符 s[i] 和 s[i + 1] 的好字符串,其中 -

  • 0 <= i <= s 的大小 - 2

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

要将字符串转换为好字符串,我们可以选择两个相邻的使字符串变坏的字符并将其删除。我们将继续这个过程,直到字符串变好(空字符串也可以是好的)。我们必须在做好后找到字符串。

因此,如果输入类似于 s = "popPpulaBbr",那么输出将是 "popular",因为首先删除 "p P " 或 "P p " 并删除 "Bb"。

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