1 package solution41;
 2 import java.util.Stack;
 3 class Solution {
 4     public int solution(String str) {
 5         Stack<Character> S = new Stack<Character>();
 6         int count = 0;
 7         for (char c : str.toCharArray()) {
 8             if (S.size() == 0) {
 9                 S.push(c);
10             } else {
11                 if (S.size() > 0) {
12                     char top = S.peek();
13                     if (top != c) {
14                         S.pop();
15                         count += 2;
16                     } else {
17                         S.push(c);
18                     }
19                 }
20             }
21         }
22         return count;
23     }
24 }

算法思路:栈。

使用栈存储字符串中的字符,

当栈空时,直接入栈。

当栈不为空时,判断当前字符和栈顶字符是否不同,如果不同则出栈,如果相同则入栈。

posted on 2020-03-06 18:19  Sempron2800+  阅读(143)  评论(0编辑  收藏  举报