【小米0923】二、循环去除连续重复元素
给出一个由小写字母组成的字符串,找出两个相邻且相同的字母,删除。
在字符上反复执行上述操作,直到无法继续删除。输出最终字符串。
提示
1 <= 输入字符串长度 <=20000
输入字母仅由小写字母组成
输入
dbbdut
输出
ut
题解
使用栈
import java.util.Scanner;
import java.util.Stack;
public class B {
public static void main(String[] args) {
Stack<Character> stack = new Stack<>();
Scanner in = new Scanner(System.in);
String str = in.nextLine();
for (int i = 0; i < str.length(); i++) {
// 栈空
if (stack.empty()) {
stack.push(str.charAt(i));
}
// 栈非空
else {
// 栈顶元素和当前元素比,一样就消掉
if (stack.peek() == str.charAt(i)) {
stack.pop();
}
// 栈顶元素和当前元素比,不一样就入栈
else {
stack.push(str.charAt(i));
}
}
}
for (Character ch : stack) {
System.out.print(ch);
}
}
}