050 · Make The String Great

algorithm
Published

July 2, 2026

Problem

给定一个字符串 s

如果字符串中有两个相邻字符满足下面两个条件,就认为它们是一对“不好”的字符:

  • 它们表示同一个英文字母
  • 其中一个是小写,另一个是大写

例如,"aA""Bb" 都是不好的相邻字符;但 "ab""AA""bB" 以外的不同字母组合都不是。

你可以不断删除任意一对不好的相邻字符。删除以后,剩下的字符会重新连在一起,可能又形成新的不好相邻字符。

请返回:最终得到的“好”字符串。

题目保证:最终结果是唯一的。空字符串也算是好字符串。

例如:

s = "leEeetcode"

中间的 "eE" 是一对不好的相邻字符,可以删除:

"leEeetcode" -> "leetcode"

现在字符串中没有不好的相邻字符,所以答案是:

"leetcode"

Examples

示例 1

Input:  s = "leEeetcode"
Output: "leetcode"

解释:删除相邻的 "eE" 后,剩下 "leetcode"

示例 2

Input:  s = "abBAcC"
Output: ""

解释:

"abBAcC" -> "aAcC" -> "cC" -> ""

最后所有字符都被删除,所以返回空字符串。

示例 3

Input:  s = "s"
Output: "s"

解释:只有一个字符,不存在不好的相邻字符。

Constraints

  • \(1 \leq\) s.length \(\leq 100\)
  • s 只包含小写和大写英文字母