序号 | 方法描述 |
---|---|
1 | boolean empty() 测试堆栈是否为空。 |
2 | Object peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。 |
3 | Object pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
4 | Object push(Object element) 把项压入堆栈顶部。 |
5 | int search(Object element) 返回对象在堆栈中的位置,以 1 为基数。 |
class Solution {
public String removeDuplicates(String S) {
//char[] ch = S.toCharArray();
int len = S.length();
Stack<Character> stack = new Stack<>();
for(int i = 0;i < len;i++){
if(stack.isEmpty() || S.charAt(i) != stack.peek()){
stack.push(S.charAt(i));
}else{
stack.pop();
}
}
StringBuilder str = new StringBuilder();
for(Character c : stack){
str.append(c);
}
return str.toString();
}
}
class Solution {
public String removeDuplicates(String S) {
//char[] ch = S.toCharArray();
int len = S.length();
Stack<Character> stack = new Stack<>();
for(int i = 0;i < len;i++){
if(!stack.isEmpty() && S.charAt(i) == stack.peek()){
stack.pop();
}else{
stack.push(S.charAt(i));
}
}
int size = stack.size();
int i = size-1;
char[] ch = new char[size];
//StringBuilder str = new StringBuilder();
while(!stack.isEmpty()){
ch[i--] = stack.pop();
}
//字符串数组转换为字符
return String.valueOf(ch);
}
}