Почему мы сделали i <s.length () - k в for для l oop. Пожалуйста, объясните логи c. Given string s и int k - PullRequest
0 голосов
/ 24 апреля 2020

Это решение лексикографии c наименьшая и наибольшая строка, в которой у нас есть вход Sting s и int k; k - длина требуемой наименьшей и наибольшей строки. Пожалуйста, go по этой ссылке квест и его заявление hackerrank.com / challenge / java -string-сравнить / задачу Мне не нужно никаких исправлений или около того. То, что я хочу, это объяснение "" для l oop "" Что такое логика c за этим i < s.length() - k. Это в 4-й строке

String smallest = s.substring(0, k);  // Assume
    String largest = s.substring(0, k);
    String temp;
    for(int i = 0; i < s.length() - k + 1;i++)<==== please Explain logic in this line
    {
        temp = s.substring(i, i + k);
        if(smallest.compareTo(temp) > 0) smallest = temp;
        if(largest.compareTo(temp) < 0) largest = temp;
    }
    return smallest + "\n" + largest;
}

1 Ответ

0 голосов
/ 24 апреля 2020

Это исправление необходимо для того, чтобы индекс не превышал длину строки, поэтому в этой строке не удается ввести StringIndexOutOfBoundsException: temp = s.substring(i, i + k);

...