方法一:26个栈
stacks[25 - c]即可找出存放当前字符的镜像字符的栈
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public long calculateScore(String s) { Deque<Integer>[] stacks = new Deque[26]; Arrays.setAll(stacks, i -> new ArrayDeque<>()); long res = 0; for (int i = 0; i < s.length(); ++i) { int c = s.charAt(i) - 'a'; if (!stacks[25 - c].isEmpty()) res += i - stacks[25 - c].pop(); else stacks[c].push(i); } return res; } }
|
image-20250111163641351
方法一: