Я хочу заказать подстроку строки 's' лексографически длиной 'k'
Я попытался сначала отсортировать символы строки лексографически, используя функцию comapareTo
, а затем попытался напечататьпервая и последняя подстрока
public static String getSmallestAndLargest(String s, int k) {
String smallest = "";
String largest = "";
char ch1,ch2,temp;
int i,j,res;
// 'smallest' must be the lexicographically smallest substring of length 'k'
// 'largest' must be the lexicographically largest substring of length 'k'
for(i=0;i<s.length();i++)
{
ch1=s.charAt(i);
for(j=i+1;j<=s.length();j++)
{
ch2=s.charAt(j);
res=ch2.compareTo(ch1);
if(res<0)
{
temp=ch2;
ch2=ch1;
ch1=temp;
}
}
}
smallest=s.substring(0,k);
largest=s.substring(s.length()-k);
return smallest + "\n" + largest;
}
ожидаемый результат: возврат соответствующих лексикографически наименьших и наибольших подстрок в виде одной строки, разделенной новой строкой.
input: welcometojava
3
expected output:ava
wel