Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
41 lines (36 loc) · 1.19 KB

File metadata and controls

41 lines (36 loc) · 1.19 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package Algorithms.string;
import java.util.Stack;
public class IsValid {
public boolean isValid(String s) {
if (s == null || s.length() == 0) {
return true;
}
Stack<Character> stack = new Stack<Character>();
int len = s.length();
for (int i = 0; i < len; i++) {
char c = s.charAt(i);
if (stack.isEmpty()) {
// 栈为空的时候,不能放右括号
if (c == ']' || c == ')' || c == '}') {
return false;
}
stack.push(c);
continue;
}
// 栈不为空时,必须 要对应弹出相对应的括号
if (c == ')' && stack.peek() == '('
|| c == ']' && stack.peek() == '['
|| c == '}' && stack.peek() == '{'
) {
stack.pop();
// 或者继续压入左括号
} else if (c == '(' || c == '[' || c == '{') {
stack.push(c);
// 否则错误退出
} else {
return false;
}
}
return stack.isEmpty();
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.