Evaluate Reverse Polish Notation——LeetCode
3563 단어 LeetCode
Valid operators are
+
, -
, *
, /
. Each operand may be an integer or another expression. Some examples:
["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6
제목 대의: String 그룹을 지정합니다. 데이터는 접두사 표현식입니다. 이 표현식의 값을 구하십시오.
문제 풀이 사고방식: 창고로 조작수를 저장하면 되고, 수를 만나면 창고에 들어가고, 조작부호를 만나면 창고에서 두 개의 원소를 추출하여 연산하여 창고에 들어가면 된다. 마지막으로 창고에 한 개의 원소만 남기면 결과이다.이것은 괄호를 끼지 않는 것이 좀 쉬워서 직접 코드를 붙인다.
static Map<String, Integer> op = new HashMap<>();
static {
op.put("+", 1);
op.put("-", 2);
op.put("*", 3);
op.put("/", 4);
}
public int evalRPN(String[] tokens) {
if (tokens == null || tokens.length == 0) {
return 0;
}
Stack<Integer> nums = new Stack<>();
for (String s : tokens) {
if (op.get(s) != null) {
int fa = nums.pop();
int fb = nums.pop();
if (op.get(s) == 1) {
nums.push(fb + fa);
} else if (op.get(s) == 2) {
nums.push(fb - fa);
} else if (op.get(s) == 3) {
nums.push(fb * fa);
} else {
nums.push(fb / fa);
}
} else {
nums.push(Integer.valueOf(s));
}
}
return nums.peek();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.