Проблема со строкой catDog на Codingbat.com - PullRequest
2 голосов
/ 29 марта 2010

Может ли кто-нибудь проверить мое решение?

Я хочу вернуть true, если строки «кошка» и «собака» появляются одинаковое количество раз в данной строке. Существуют различные строки с разными номерами "кошка" и "собака".

public boolean catDog(String str) 
{  
  int catAnswer = 0;
  int dogAnswer = 0;
  int cat_Count = 0;
  int dog_Count = 0;

  for (int i=0; i< str.length()-1; i++) 
  {
    String sub = str.substring(i, i+2);


    if ((sub.equals("cat")))  cat_Count++;
    if ((sub.equals("dog")))  dog_Count++;
    catAnswer = cat_Count; 
    dogAnswer = dog_Count;

  } //end for

  if(dogAnswer == catAnswer ) {return true;}
  // else
  return (dogAnswer != catAnswer);
}

ОБНОВЛЕНИЕ:

  1. Если я использую i + 3, я получаю код ошибки Исключение: java.lang.StringIndexOutOfBoundsException: Индекс строки вне диапазона: 7 (строка число: 10) - следовательно, я использую я + 2 (нет сообщается об ошибках

  2. Изменение на i

Суть проблемы в том, что ответ может быть либо истинным, либо ложным, если в различных строках есть переменные числа "кошка" и "собака"

вывод кода можно увидеть на http://codingbat.com/prob/p111624 - проблема со строкой catDog

Пожалуйста, попробуйте вырезать и вставить мой код, чтобы увидеть результат - это объяснит более наглядно, чем я мог бы сказать

Ответы [ 11 ]

0 голосов
/ 30 марта 2010

1. если я использую i + 3, я получаю код ошибки. Исключение: java.lang.StringIndexOutOfBoundsException: индекс строки вне диапазона: 7 (номер строки: 10) - следовательно, я использую i + 2 (об этом не сообщается об ошибках 2. изменение i

Суть проблемы в том, что ответ является либо истинным, либо ложным, несмотря на то, что в различных строках есть переменное число токенов "кошка" и "собака"

вывод кода можно увидеть на http://codingbat.com/prob/p111624 - проблема со строкой catDog

Пожалуйста, попробуйте вырезать и вставить мой код, чтобы увидеть результат - это объяснит более графически, чем я мог бы сказать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...