Это программа для печати лексикографически самой маленькой и самой большой подстроки размера k.
В этом решении есть часть, которую я не совсем понимаю. Может быть, кто-то может объяснить это мне.
public static String getSmallestAndLargest(String s, int k) {
String smallest = "";
String largest = "";
String currStr = s.substring(0, k);
Вот часть, которую я не понимаю. почему int i
инициализируется с k
и как
for(int i = k; i<s.length(); i++){
currStr = currStr.substring(1, k) + s.charAt(i);
точно работает?
Полный l oop:
for(int i = k; i<s.length(); i++){
currStr = currStr.substring(1, k) + s.charAt(i);
if (lexMax.compareTo(currStr) < 0)
lexMax = currStr;
if (lexMin.compareTo(currStr) > 0)
lexMin = currStr;
}
return smallest + "\n" + largest;
}