1047. Remove All Adjacent Duplicates In String做题报告
Posted aiahtwo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1047. Remove All Adjacent Duplicates In String做题报告相关的知识,希望对你有一定的参考价值。
题目链接:
Remove All Adjacent Duplicates In String
题目大意:
删除字符串中的所有相邻字符
做题报告:
(1)该题涉及的算法与数据结构
栈
(2)自己的解答思路+代码+分析时间和空间复杂度
Input: "abbaca"
Output: "ca"
思路:使用栈,对字符串遍历,进行入栈出栈操作。如果栈空或者遍历到的该字符与栈顶元素不同则入栈,否则(即遍历到的该字符与栈顶元素相同)出栈。最后,栈存的字符就是我们所要的答案。
代码:
class Solution { public String removeDuplicates(String S) { Stack<Character> stack = new Stack<Character>(); for(int i = 0;i < S.length();i++){ if((stack.empty() == true) || (stack.peek()!=S.charAt(i))) stack.push(S.charAt(i)); else stack.pop(); } StringBuffer str=new StringBuffer(); for (Character c : stack) { str.append(c); } return str.toString(); } }
时间和空间复杂度:
时间复杂度:O(N)
空间复杂度:O(N)
(3)大神们的解答思路+代码+分析时间和空间复杂度
思路:栈思想
代码:
时间和空间复杂度:
时间复杂度:O(N)
空间复杂度:O(N)
(4)比较自己想的和参考答案的区别:
思路差不多,只是实现略微不同,导致代码效率也存在略微区别
以上是关于1047. Remove All Adjacent Duplicates In String做题报告的主要内容,如果未能解决你的问题,请参考以下文章
1047--Remove All Adjacent Duplicates In String
LC-1047 Remove All Adjacent Duplicates In String
LeetCode --- 1047. Remove All Adjacent Duplicates In String 解题报告
LeetCode --- 1047. Remove All Adjacent Duplicates In String 解题报告