2024/9/16 LeetCode Hot100 Stack
This commit is contained in:
parent
94ad2b4248
commit
8999e23702
|
@ -0,0 +1,47 @@
|
||||||
|
package com.cool.hot100.stack;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created with IntelliJ IDEA.
|
||||||
|
*
|
||||||
|
* @Author: Cool
|
||||||
|
* @Date: 2024/09/16/13:55
|
||||||
|
* DayNumber 1
|
||||||
|
* Hard 2
|
||||||
|
* Level 4
|
||||||
|
* @Description LeetCode 151题
|
||||||
|
*/
|
||||||
|
public class MinStack {
|
||||||
|
private Stack<Integer> stack;
|
||||||
|
private Stack<Integer> minStack;
|
||||||
|
|
||||||
|
public MinStack() {
|
||||||
|
stack=new Stack<>();
|
||||||
|
minStack=new Stack<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void push(int val) {
|
||||||
|
stack.push(val);
|
||||||
|
if(minStack.isEmpty()||minStack.peek()>=val){
|
||||||
|
minStack.push(val);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void pop() {
|
||||||
|
|
||||||
|
if(stack.pop().equals(minStack.peek())){
|
||||||
|
minStack.pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int top() {
|
||||||
|
return stack.peek();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMin() {
|
||||||
|
return minStack.peek();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,41 @@
|
||||||
|
package com.cool.hot100.stack;
|
||||||
|
|
||||||
|
import java.util.Stack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created with IntelliJ IDEA.
|
||||||
|
*
|
||||||
|
* @Author: Cool
|
||||||
|
* @Date: 2024/09/16/17:52
|
||||||
|
* DayNumber 2
|
||||||
|
* Hard 2
|
||||||
|
* Level 6
|
||||||
|
*/
|
||||||
|
public class Num394 {
|
||||||
|
public String decodeString(String s) {
|
||||||
|
StringBuilder res = new StringBuilder();
|
||||||
|
int multi = 0;
|
||||||
|
Stack<Integer> multiStack = new Stack<>();
|
||||||
|
Stack<String> resStack = new Stack<>();
|
||||||
|
for (char c : s.toCharArray()) {
|
||||||
|
if (c == '[') {
|
||||||
|
multiStack.push(multi);
|
||||||
|
multi = 0;
|
||||||
|
resStack.push(res.toString());
|
||||||
|
res = new StringBuilder();
|
||||||
|
} else if (c == ']') {
|
||||||
|
int currentMulti = multiStack.pop();
|
||||||
|
StringBuilder temp = new StringBuilder();
|
||||||
|
for (int i = 0; i < currentMulti; i++) {
|
||||||
|
temp.append(res);
|
||||||
|
}
|
||||||
|
res = new StringBuilder(resStack.pop() + temp);
|
||||||
|
} else if (c >= '0' && c <= '9') {
|
||||||
|
multi = multi * 10 + Integer.parseInt(c + "");
|
||||||
|
} else {
|
||||||
|
res.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res.toString();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue