逆ポーランド記法での算術式の値を評価します。、*、/ - 有効な演算子は+、です。各オペランドは整数または別の表現であってもよいです。いくつかの例:

輸入 java.utilの。* ;
パブリック クラスソリューション{
     公共 のint evalRPN(文字列[]トークン){ 
       
        // = 0 INTの一時。
       スタック<整数>スタック= 新しいスタック<整数> ();
        以下のためにint型 i = 0; iはtokens.length <; iは++ ){
             場合(トークン[i]は.equals( "+")||トークン[i]は.equals( " - ")||トークン[i]は.equals ( "*")||トークン[I] .equals( "/" )){
                 int型 A = stack.pop()。
                INT B = stack.pop()。
                // TEMP = calculateMethod(トークン[I]、B)。
                stack.push(calculateMethod(トークン[I]において、a、b))。
            } { 
                stack.push(Integer.parseInt(トークン[I]))。
            } 
        } 
        戻りstack.pop()。
    } 

    公共  INT calculateMethod(文字列トークン、INTINTの{b)の
         場合(tokens.equals( "+" )){
             戻り B + 
        } そう であれば(tokens.equals( " - " )){
             戻り B - 
        } それ以外の 場合(tokens.equals( "*")){
             戻り B * 
        } 
        {
             // INT C = B / A。
           // のSystem.out.println(c)前記 
            戻る / B ; 
        } 
    } 
}

 

おすすめ

転載: www.cnblogs.com/q-1993/p/10991038.html