Вопрос предоставляет входную строку и целое число, он просит нас преобразовать строку во все возможные комбинации подстрок длины, как указано предоставленным входным целым числом. Затем мы должны найти максимум и минимум из этих подстрок.
Я нашел решение проблемы, но может ли кто-нибудь объяснить часть цикла. Решение:
import java.io.*;`
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
int k = sc.nextInt();
String maxString = s.substring(0, k);
String minString = s.substring(0, k);
for (int i = 1; i <= s.length() - k; ++i){
if (maxString.compareTo(s.substring(i, i + k)) < 0)
maxString = s.substring(i, i + k);
if (minString.compareTo(s.substring(i, i + k)) > 0)
minString = s.substring(i, i + k);
}
System.out.println(minString);
System.out.println(maxString);
}
}
S.substring(i,i+k)
следует выполнять только один раз, а затем сохранять - person Lino   schedule 23.07.2018substring
вызовет лишь небольшие накладные расходы. См.: stackoverflow .com/questions/10830004/ и заголовок stackoverflow.com/questions/20260140/ - person Hearen   schedule 23.07.2018