消消乐(双指针)
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.next();int n = s.length();int l = 0, r = n - 1;while (l < r) {// 从左往右跳过 Bwhile (l < r && s.charAt(l) == 'B') l++;// 从右往左跳过 Awhile (l < r && s.charAt(r) == 'A') r--;// 如果还能匹配,就消掉一对if (l < r) {n -= 2;l++;r--;}}System.out.println(n);}
}
从 左边找到第一个 A,从 右边找到第一个 B。
如果此时 A
在左边,B
在右边,就能消掉这一对。
每次消掉一对字符,n -= 2
。
继续往内收缩,直到左右指针相遇或者没有合法的配对。