public class RemoveAllAdjacentDuplicatesInString { /* 解法一:栈 */ public String removeDuplicates(String S) { Stack<Character> stack=new Stack<>(); for (char c:S.toCharArray()){ if (stack.isEmpty()||c!=stack.peek()) stack.push(c); else stack.pop(); } StringBuilder stringBuilder=new StringBuilder(); for (Character character:stack) stringBuilder.append(character); return stringBuilder.toString(); } /* 解法二:StringBuilder模拟栈。 */ public String removeDuplicates2(String S) { StringBuilder stringBuilder=new StringBuilder(); int length=0; for (char c:S.toCharArray()){ if (length!=0&&c==stringBuilder.charAt(length-1)) stringBuilder.deleteCharAt(length-- -1); else { stringBuilder.append(c); length++; } } return stringBuilder.toString(); } }
本文介绍了一种使用栈和StringBuilder来去除字符串中所有相邻重复字符的算法。提供了两种实现方法,一种是利用栈的数据结构,另一种是通过StringBuilder模拟栈操作。这两种方法都能有效地移除字符串中的相邻重复元素。
612

被折叠的 条评论
为什么被折叠?



