Leetcodeの682.野球の試合

955 ワード

あなたは今野球の記録員です.文字列のリストを指定します.各文字列は、次の4つのタイプのいずれかです.1.整数(1ラウンドの得点):本ラウンドで得たポイント数を直接表します.2.「+」(1ラウンドの得点):本ラウンドで獲得した得点が前の2ラウンドの有効ラウンドの得点の合計であることを示す.3.「D」(1ラウンドの得点):本ラウンドで獲得した得点が前ラウンドの有効ラウンドの得点の2倍であることを示す.4.「C」(1ラウンドのスコアではない操作):最後の有効ラウンドのスコアが無効であることを示し、削除されるべきである.
各ラウンドの操作は永久的であり、前のラウンドと後のラウンドに影響を与える可能性がある.すべてのラウンドで得点した合計を返す必要があります.
例:入力:["5","2","C","D","+"]出力:30解釈:第1ラウンド:5点を得ることができます.合計は:5です.第2ラウンド:2点を得ることができます.合計は:7です.操作1:第2ラウンドのデータが無効です.合計は:5です.第3ラウンド:10点を得ることができます(第2ラウンドのデータは削除されました).合計は:15です.第4ラウンド:5+10=15点を得ることができます.合計は:30です.
出典:力ボタン(LeetCode)
問題解:文字列配列の各要素を遍歴し、その値に基づいて行うべき操作を決定します(javaは直接問題の意味を翻訳すればいいです).
class Solution {
    public int calPoints(String[] ops) {
        int[] array=new int[ops.length];
        int i=0,sum=0;
        for(int m=0;m