括弧なしのインタビューアルゴリズム式(D)

java.util.Scannerインポート; 

パブリッククラスのテスト{ 
    公共の静的な無効メイン(文字列[] args){ 
        スキャナスキャナスキャナ新しい新=(System.in); 
        文字列= Scanner.next次に(); 
        System.out.printlnは(テスト(次)); 
    } 
    / ** 
     *のみオペレータプラス、マイナス、および括弧を含むボード減算式の書き込みを有し、ブラケットが、洗剤が払拭されます。今、あなたは括弧を消去する前に、式の結果の可能な最小値を計算するためのアルゴリズムを記述する必要があります。
     * <P> 
     *入力:
     *のみ一列、払拭された後、ブラケット表現
     * <P> 
     *入力制約:
     - *式は、50文字まで有する、のみ0-9 +とが含ま
     *式の文字は数字でなければならない
     *式ではない連続する2つのオペレータ行い
     *式それぞれ最大5の整数
     * <P> 
     :*出力
     *整数:拭き取られる前、すなわちブラケット、最小の可能な式結果値
     * <P> 
     *例1:
     *入力: 
        文字列retstr = "";
     55から50 * + 40 
     *出力:
     * -35 
     *説明:
     *括弧を追加することにより、方程式は、2つの可能な結果があります= 55- 55から50および45 + 40(50 + 40)= - 35 
     * <P > 
     *例2:
     *入力:
     * 10 + 20 + 30 + 40 
     *出力:
     * 100 
     *説明:
     *そこにはマイナス入力はないので、どんなにブラケット、結果は、100であることはできないので
     * <P> 
     *例3:
     *入力:
     * 00009から00009 
     *出力:
     * 0 
     *解釈:0の式プリアンブルの整数があるかもしれないことに注意してください
     * 
     * @paramのSTR 
     * @return 
     * / 
    静的INTテスト(文字列STR){ 
        文字列[] =分割str.split( " - ");
        {ため(iは++; iはsplit.length <I = 0 INT)
            IF(!スプリット[I] .indexOf( "+")= -1){ 
                文字列[] SP2 =スプリット[I] .split( "\\ +")。
                INT S = Integer.parseInt(SP2 [0])。
                用(INT C = 1; C <sp2.length、C ++)S + = Integer.parseInt(SP2 [C])。
                retStr + = " - " + S; 
            }他retStr + = " - " +スプリット[I]。
        } 
        IF(retStr.substring(0、1).equals( " - "))retStr = retStr.substring(1)。
        文字列[] split1 = retStr.split( " - ")。
        INT、N = Integer.parseInt(split1 [0])。
        = Integer.parseInt(split1 [I]) - N;のため(iは++; iはsplit1.length <I = 1 INT)
        Nを返します。
    } 
}

  

おすすめ

転載: www.cnblogs.com/412013cl/p/11768268.html