2022-08-18

俺はみずほと同じぐらいのコードしか書けないのに気が付いた

話題ホットエントリ問題、解いてみた。

結論タイトルの通り

不正解score += 0; と書いているのは静的解析がelse節を省略すると指摘してくるから

何もしていない、はそのとおり。

不等号がいい具合に化けてるのでそのままにしておく。


import java.util.*;


public class Main {
    public static void main(String[] args) {
        // 入力parse
       (中略:int numに問題の数、String list[i][] に問題リストを格納している)

        // 採点
        int point = 0;
        for (int i = 0; i < num; i++) {
            String question = list[i][0];
            String answer   = list[i][1];
            
            if (question.equals(answer)) {
                // 完全一point += 2;
            } else {
                if (question.length() == answer.length()) {
                    // 文字数は等しい(部分点の可能性がある)
                    point += scoring(question, answer);                    
                } else {
                    // 不正解
                    point += 0;
                }                
            }
        }
        System.out.println(point);
    }

    // 長さが同じ文字列を採点する
    // 長さが違う文字列を受け渡したときは正しく動作しない
    private static int scoring(String question, String answer) {
        int length = question.length();
        int score  = 2;
        for (int i = 0; i < length; i++) {
          (中略:文字が違うたびにscoreを-1して、socreが0以下になったらそのままreturn)
        }
        return score;
    }
}

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん