本文共 574 字,大约阅读时间需要 1 分钟。
给定一个只含英文字母的字符串 s s s,要求将其递归地删去所有相邻两个字母刚好分别是某个字母大小写的子串。返回最终结果。题目保证答案唯一。
代码如下:
public class Solution { public String makeGood(String s) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (sb.length() > 0 && Math.abs(sb.charAt(sb.length() - 1) - ch) == 'a' - 'A') { sb.setLength(sb.length() - 1); } else { sb.append(ch); } } return sb.toString(); }}
时空复杂度 O ( l s ) O(l_s) O(ls)。
转载地址:http://trfnz.baihongyu.com/