这篇page是针对leetcode上的1047.删除字符串中的所有相邻重复项所写的,小尼先简单的说明一下这道题,这道题的条件是给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的祖母,并删除它们。
这道题其实跟小尼上一篇写的page的判断括号的那道题的解法其实是差不多的,这两道题都是利用栈这个结构来进行解题,
小尼接下里拉一下代码:
Deque<Character> arr = new LinkedList<>(); for(int i =0;i<s.length();i++){ char ch = s.charAt(i); if(arr.isEmpty() || arr.peek() != ch){ arr.push(ch); } else{ arr.pop(); } } String result = ""; while(!arr.isEmpty()){ result = arr.pop() + str; } return result;
其实这道题的代码的描述比括号的判断那道题还要来的简单,这里我们只需要简单的加入和判断是否相等就可以了,然后判断是否pop或者push,最后得到我们只需要返回一个string类型的的元素就可以了