창고 응용 - 역폴란드식 표현식 값

3448 단어
문제 설명:
주어진 역폴란드 표현식(즉 접두사 표현식)의 값을 계산합니다.
사실상 이원 연산의 전제에서 접두사 표현식은 두 갈래 나무에 대응할 수 있다.역폴란드식은 바로 이 두 갈래 나무가 뒤섞인 결과이다.
 
분석 방향:
  • 현재 조작수이면 바로 창고에 들어갑니다
  • 현재 조작부호라면 창고 위에 있는 두 요소가 튀어나와 현재 조작부호와 연산한 후 창고에 들어갑니다

  •  
    Code:
        /**
         *  , 
         * @param s
         * @return
         */
        public int getTheValueOfRPN(String s) {
            char[] ch = s.toCharArray();
            Stack stack = new Stack();
            for(int i=0; i) {
                if(isOperator(ch[i])) {
                    int v1 = stack.peek();
                    stack.pop();
                    int v2 = stack.peek();
                    stack.pop();
                    if(ch[i] == '+')
                        stack.push(v1 + v2);
                    else if(ch[i] == '-')
                        stack.push(v1 - v2);
                    else if(ch[i] == '*')
                        stack.push(v1 * v2);
                    else 
                        stack.push(v1 / v2);
                }
                else 
                    stack.push(Integer.valueOf(ch[i]-48));
                
            }
            return stack.pop();
        }
    
        private boolean isOperator(char c) {
            // TODO Auto-generated method stub
            if(c == '+' || c == '-' || c == '*' || c == '/')
                return true;
            return false;
        }

     
    다음으로 전송:https://www.cnblogs.com/little-YTMM/p/5448803.html

    좋은 웹페이지 즐겨찾기