题目
思路
这一题比上一题的括号要简单许多。
这道题目就像是我们玩过的游戏对对碰,如果相同的元素放在挨在一起就要消除。此时就可以用一个栈来实现。
综合上一题,我们会发现这个if else对于这类题是尤为重要的,尤其要注意我们关注的只有栈顶元素,只有这样我们才能正确的消除。
public String removeDuplicates(String s) {
Deque<Character> deque = new LinkedList<>();
for (int i = 0; i < s.length(); i++) {
if (deque.isEmpty() || deque.peek()!=s.charAt(i)){
deque.push(s.charAt(i));
}
else { deque.pop();}
}
String str = "";
//剩余的元素即为不重复的元素
while (!deque.isEmpty()) {
str = deque.pop() + str;
}
return str;
}