题目
给你一个仅由 大写 英文字符组成的字符串
s
。你可以对此字符串执行一些操作,在每一步操作中,你可以从
s
中删除 任一个"AB"
或"CD"
子字符串。通过执行操作,删除所有
"AB"
和"CD"
子串,返回可获得的最终字符串的 最小 可能长度。注意,删除子串后,重新连接出的字符串可能会产生新的
"AB"
或"CD"
子串。
解题思路
- 因为不确定需要循环遍历几次,所以选择使用while来进行循环;
- 创建标志常量来表示循环状态是否结束;
- 利用字符串的replaceAll方法来替换字符串"AB"和"CD";
- 当字符串长度与替换前相同时则跳出循环。
代码展示
class Solution { public int minLength(String s) { boolean status = true; while (status) { int len = s.length(); s = s.replaceAll("AB", ""); s = s.replaceAll("CD", ""); if(s.length() == len){ status = false; } } return s.length(); } }