【发布时间】:2019-04-13 10:25:32
【问题描述】:
我想按字典序对字符串 '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
【问题讨论】: