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 }
算法思路:栈。
使用栈存储字符串中的字符,
当栈空时,直接入栈。
当栈不为空时,判断当前字符和栈顶字符是否不同,如果不同则出栈,如果相同则入栈。