本文主要是介绍Leetcode 1047-删除字符串中的所有相邻重复项,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
题解
题目链接
//先进后出,使用栈进行匹配
//遍历字符串
//字符串中当前字符如果与栈顶元素匹配,则当前元素不入栈并弹出栈顶元素,否则栈顶元素入栈。
class Solution {public String removeDuplicates(String s) {Stack<Character> stack = new Stack<>();char c;for(int i=0;i<s.length();i++){c=s.charAt(i);if((!stack.isEmpty())&&stack.peek()==c) stack.pop(); else stack.push(c);}String str = "";//剩余的元素即为不重复的元素while (!stack.isEmpty()) {str = stack.pop() + str;}return str;}
}
这篇关于Leetcode 1047-删除字符串中的所有相邻重复项的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!