增加淘宝群内容,修改部分文件组织
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package 栈;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Stack;
|
||||
|
||||
public class _20_有效的括号 {
|
||||
private static HashMap<Character, Character> map = new HashMap<>();
|
||||
static {
|
||||
// key - value
|
||||
map.put('(', ')');
|
||||
map.put('{', '}');
|
||||
map.put('[', ']');
|
||||
}
|
||||
|
||||
public boolean isValid(String s) {
|
||||
Stack<Character> stack = new Stack<>();
|
||||
|
||||
int len = s.length();
|
||||
for (int i = 0; i < len; i++) {
|
||||
char c = s.charAt(i);
|
||||
if (map.containsKey(c)) { // 左括号
|
||||
stack.push(c);
|
||||
} else { // 右括号
|
||||
if (stack.isEmpty()) return false;
|
||||
|
||||
if (c != map.get(stack.pop())) return false;
|
||||
}
|
||||
}
|
||||
return stack.isEmpty();
|
||||
}
|
||||
|
||||
public boolean isValid1(String s) {
|
||||
Stack<Character> stack = new Stack<>();
|
||||
|
||||
int len = s.length();
|
||||
for (int i = 0; i < len; i++) {
|
||||
char c = s.charAt(i);
|
||||
if (c == '(' || c == '{' || c == '[') { // 左括号
|
||||
stack.push(c);
|
||||
} else { // 右括号
|
||||
if (stack.isEmpty()) return false;
|
||||
|
||||
char left = stack.pop();
|
||||
if (left == '(' && c != ')') return false;
|
||||
if (left == '{' && c != '}') return false;
|
||||
if (left == '[' && c != ']') return false;
|
||||
}
|
||||
}
|
||||
return stack.isEmpty();
|
||||
}
|
||||
|
||||
public boolean isValid2(String s) {
|
||||
while (s.contains("{}")
|
||||
|| s.contains("[]")
|
||||
|| s.contains("()")) {
|
||||
s = s.replace("{}", "");
|
||||
s = s.replace("()", "");
|
||||
s = s.replace("[]", "");
|
||||
}
|
||||
return s.isEmpty();
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,44 @@
|
||||
package 栈;
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
public class _232_用栈实现队列 {
|
||||
private Stack<Integer> inStack;
|
||||
private Stack<Integer> outStack;
|
||||
|
||||
/** Initialize your data structure here. */
|
||||
public _232_用栈实现队列() {
|
||||
inStack = new Stack<>();
|
||||
outStack = new Stack<>();
|
||||
}
|
||||
|
||||
/** 入队 */
|
||||
public void push(int x) {
|
||||
inStack.push(x);
|
||||
}
|
||||
|
||||
/** 出队 */
|
||||
public int pop() {
|
||||
checkOutStack();
|
||||
return outStack.pop();
|
||||
}
|
||||
|
||||
/** 获取队头元素 */
|
||||
public int peek() {
|
||||
checkOutStack();
|
||||
return outStack.peek();
|
||||
}
|
||||
|
||||
/** 是否为空 */
|
||||
public boolean empty() {
|
||||
return inStack.isEmpty() && outStack.isEmpty();
|
||||
}
|
||||
|
||||
private void checkOutStack() {
|
||||
if (outStack.isEmpty()) {
|
||||
while (!inStack.isEmpty()) {
|
||||
outStack.push(inStack.pop());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user