java 已知字符串str。字符串str包含字符’x’,’y’。如果相邻的两个字符不同,消除两个字符, 优先从左边进行消除。
时间: 2023-11-12 17:05:13 浏览: 66
js代码-3.23:第一次练习,选择冒泡排序,// 数组中元素出现的次数,// 一个字符串里面某个字母出现的次数,转RMB。
可以使用一个栈来模拟这个过程。我们从左到右遍历字符串,如果当前字符和栈顶字符不同,则弹出栈顶字符,否则将当前字符压入栈中。最终栈中剩下的字符就是消除后的结果。
Java 代码如下:
```java
public static String eliminate(String str) {
Stack<Character> stack = new Stack<>();
for (char c : str.toCharArray()) {
if (!stack.isEmpty() && c != stack.peek()) {
stack.pop();
} else {
stack.push(c);
}
}
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
return sb.reverse().toString();
}
```
这个算法的时间复杂度是 $O(n)$,其中 $n$ 是字符串的长度。
阅读全文