ArrayList.size () не работает - PullRequest
0 голосов
/ 08 мая 2018

Я тренируюсь на Google Kick Start Там я нашел этот вопрос для практики https://code.google.com/codejam/contest/9234486/dashboard. Я сделал следующий код до сих пор, но он не работает.

import java.util.*;
public class Solution {
    public static void main(String[] args) {
        int numOfCases = 0, numOfSteps = 0, num = 0;
        ArrayList<Integer> indexOfOdd = new ArrayList<Integer>();
        String input = "";
        boolean isOdd = false;
        Scanner in = new Scanner(System.in);
        numOfCases = in.nextInt();
        for (int i = 1 ; i <= numOfCases ; i++) {
            input = in.next();
            for(int j = 0; j<input.length(); j++) {
                num=Integer.parseInt(input.substring(j,j+1));
                if (num%2!=0) {
                    indexOfOdd.add(j);
                }
                System.out.println(indexOfOdd);
            }
            if(indexOfOdd.size() == 0) {
                numOfSteps = 1;
            }
            indexOfOdd.clear();
            System.out.println("Case #" + i + ": " + numOfSteps);
            }
    }
}

Это был мой выходной файл:

[]
[]
Case #1: 1
[0]
[0, 1]
Case #2: 1
[0]
Case #3: 1
[]
[]
[2]
[2]
Case #4: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
Case #5: 1
[]
Case #6: 1
[0]
[0, 1]
[0, 1]
[0, 1, 3]
[0, 1, 3, 4]
Case #7: 1
[]
[]
[]
[]
[4]
Case #8: 1
[0]
Case #9: 1
[]
[1]
[1]
[1]
[1]
Case #10: 1
[]
[1]
[1, 2]
[1, 2]
[1, 2, 4]
Case #11: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
Case #12: 1
[0]
[0]
[0]
[0]
[0]
Case #13: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
Case #14: 1
[]
[1]
[1, 2]
[1, 2]
[1, 2]
Case #15: 1
[]
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
Case #16: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #17: 1
[0]
[0]
[0]
[0, 3]
[0, 3]
Case #18: 1
[0]
[0]
[0, 2]
[0, 2]
[0, 2, 4]
Case #19: 1
[0]
[0]
[0, 2]
[0, 2, 3]
[0, 2, 3]
Case #20: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #21: 1
[]
[1]
[1]
[1, 3]
[1, 3]
Case #22: 1
[0]
[0]
[0]
[0]
[0]
Case #23: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1, 4]
Case #24: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2]
Case #25: 1
[]
[]
[2]
[2, 3]
[2, 3]
Case #26: 1
[]
[]
[]
[3]
[3, 4]
Case #27: 1
[]
Case #28: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
Case #29: 1
[]
[1]
[1, 2]
[1, 2]
[1, 2]
Case #30: 1
[0]
Case #31: 1
[0]
[0, 1]
[0, 1]
[0, 1, 3]
[0, 1, 3, 4]
Case #32: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
Case #33: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #34: 1
[0]
[0]
Case #35: 1
[0]
[0, 1]
Case #36: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #37: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #38: 1
[]
[]
[2]
[2]
[2, 4]
Case #39: 1
[0]
[0]
[0]
[0]
[0]
Case #40: 1
[]
[1]
[1]
[1]
Case #41: 1
[]
[]
[2]
[2]
[2]
Case #42: 1
[0]
[0]
[0, 2]
[0, 2]
[0, 2]
Case #43: 1
[]
[1]
[1, 2]
[1, 2]
[1, 2]
Case #44: 1
[]
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
Case #45: 1
[0]
[0]
[0]
[0]
[0]
Case #46: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1, 4]
Case #47: 1
[0]
[0]
[0, 2]
[0, 2, 3]
[0, 2, 3, 4]
Case #48: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
Case #49: 1
[]
Case #50: 1
[]
[1]
[1, 2]
[1, 2, 3]
Case #51: 1
[0]
[0]
[0]
[0]
[0, 4]
Case #52: 1
[0]
[0, 1]
Case #53: 1
[0]
Case #54: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2, 4]
Case #55: 1
[]
[1]
[1, 2]
[1, 2, 3]
[1, 2, 3, 4]
Case #56: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #57: 1
[0]
[0, 1]
[0, 1]
[0, 1, 3]
[0, 1, 3, 4]
Case #58: 1
[]
[1]
[1, 2]
[1, 2]
[1, 2, 4]
Case #59: 1
[]
[1]
[1]
[1, 3]
[1, 3, 4]
Case #60: 1
[0]
[0]
[0]
[0]
[0]
[0]
Case #61: 1
[]
[1]
[1]
[1, 3]
[1, 3]
Case #62: 1
[]
[1]
[1]
[1, 3]
[1, 3]
Case #63: 1
[0]
[0]
[0, 2]
[0, 2, 3]
[0, 2, 3, 4]
Case #64: 1
[0]
[0]
[0]
[0]
[0, 4]
Case #65: 1
[]
[]
[2]
[2]
[2, 4]
Case #66: 1
[]
[1]
[1]
[1]
[1]
Case #67: 1
[]
[]
[]
[]
[]
Case #68: 1
[]
[]
[2]
[2]
[2, 4]
Case #69: 1
[]
[1]
[1]
[1]
[1]
Case #70: 1
[]
[1]
[1]
[1]
[1, 4]
Case #71: 1
[0]
Case #72: 1
[0]
[0]
[0, 2]
[0, 2]
[0, 2, 4]
Case #73: 1
[]
[]
[2]
[2]
[2]
Case #74: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3]
Case #75: 1
[]
[1]
[1]
[1]
Case #76: 1
[]
[]
[]
[]
[]
Case #77: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2, 4]
Case #78: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2]
Case #79: 1
[0]
[0]
[0]
[0, 3]
[0, 3, 4]
Case #80: 1
[0]
[0]
[0, 2]
[0, 2]
[0, 2]
Case #81: 1
[0]
[0]
[0]
[0, 3]
Case #82: 1
[]
[]
[]
[]
[]
Case #83: 1
[0]
[0]
[0, 2]
[0, 2]
[0, 2]
Case #84: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #85: 1
[]
Case #86: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2, 4]
Case #87: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
Case #88: 1
[]
[]
[]
[]
[]
Case #89: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2]
[0, 1, 2, 4]
Case #90: 1
[]
[1]
[1, 2]
[1, 2]
[1, 2]
Case #91: 1
[]
[]
[2]
[2]
[2, 4]
Case #92: 1
[0]
[0, 1]
[0, 1]
[0, 1, 3]
[0, 1, 3, 4]
Case #93: 1
[0]
[0, 1]
[0, 1]
[0, 1]
[0, 1]
Case #94: 1
[0]
[0]
[0]
[0]
Case #95: 1
[]
[]
[]
[]
[]
Case #96: 1
[]
[1]
[1, 2]
[1, 2]
[1, 2]
Case #97: 1
[]
[]
[]
[]
[4]
Case #98: 1
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2]
Case #99: 1
[0]
[0]
[0, 2]
[0, 2]
[0, 2, 4]
Case #100: 1

Пожалуйста, помогите мне. Я запутался в том, какая часть не работает. Он должен работать как если список массивов пуст, он должен показывать 1, иначе 0. Так в чем же ошибка ????

Я просто учусь в 12-м классе в Индии, поэтому я был бы признателен за уточнение найденных ошибок.

https://drive.google.com/open?id=1fIVWsMXVJLknmlzkNE_2iQakW-nsMRXJ

Это файлы, которые вы можете просмотреть для справки. Спасибо.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Вы ожидаете, что значение numOfSteps будет в некоторых случаях равным нулю, но, поскольку вы не сбрасываете значение для каждого входа, если у вас есть значения в списке один раз, все остальные тесты являются неверными. Вам просто нужно установить переменную в ноль, исходя из условия:

if(indexOfOdd.size() == 0) {
    numOfSteps = 1;
} else {
    numOfSteps = 0;
}

Или используя троичную:

numOfSteps = indexOfOdd.size() == 0 ? 1 : 0;

Вы также можете сбросить numOfSteps в ноль в начале каждой итерации.

for (int i = 1 ; i <= numOfCases ; i++) {
    numOfSteps  = 0;
    input = in.next();
    ...

РЕДАКТИРОВАТЬ:

Вас может заинтересовать метод List.isEmpty, который возвращает логическое значение.

numOfSteps = indexOfOdd.isEmpty() ? 0 : 1;
0 голосов
/ 08 мая 2018

Вам нужно добавить

numOfSteps = indexOfOdd.size();

вместо

if(indexOfOdd.size() == 0) {
  numOfSteps = 1;
}

Ваш модифицированный метод будет следующим:

public static void main(String[] args) {
    int numOfCases = 0, numOfSteps = 0, num = 0;
    ArrayList<Integer> indexOfOdd = new ArrayList<Integer>();
    String input = "";
    in = new Scanner(System.in);
    numOfCases = in.nextInt();
    for (int i = 1; i <= numOfCases; i++) {
        input = in.next();
        for (int j = 0; j < input.length(); j++) {
            num = Integer.parseInt(input.substring(j, j + 1));
            if (num % 2 != 0) {
                indexOfOdd.add(j);
            }
            System.out.println(indexOfOdd);
        }

        numOfSteps = indexOfOdd.size();

        indexOfOdd.clear();
        System.out.println("Case #" + i + ": " + numOfSteps);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...