hackerrank java子字符串比较错误
您的输出(标准输出): 预期产出:hackerrank java子字符串比较错误,java,Java,您的输出(标准输出): 预期产出: com wel 这是因为这个循环: ava wel 尝试此操作以获取最后3个字符串: for (int i = 0; i < s.length() - k + 1; i++) { 请遵循此代码 largest = s.substring(s.length -3); 公共静态字符串getSmallestAndLargest(字符串s,int k){ 字符串最小=”; 字符串最大=”; char[]strArr=s.toCharArray(); i
com
wel
这是因为这个循环:
ava
wel
尝试此操作以获取最后3个字符串:
for (int i = 0; i < s.length() - k + 1; i++) {
请遵循此代码
largest = s.substring(s.length -3);
公共静态字符串getSmallestAndLargest(字符串s,int k){
字符串最小=”;
字符串最大=”;
char[]strArr=s.toCharArray();
int size=strArr.length;
char smallestChar=最小字母表(strArr,大小);
char largestChar=最大字母表(strArr,大小);
String[]smallestCharStringSet=prepareSetOfString(s,k,smallestChar);
String[]largestCharStringSet=prepareSetOfString(s,k,largestChar);
最小=smallestString(smallestCharStringSet);
最大=最大字符串(最大字符串集);
返回最小值+“\n”+最大值;
}
公共静态字符串[]PrepareSetoString(字符串s、整数k、字符c){
int count=getCharCount(s,c);
String[]possibleStringCollection=新字符串[计数];
字符串操作字符串=s;
possibleStringCollection[0]=操作字符串;
for(int i=0;ifor(int i=0;i<s.length()-k;i++){
for (int i = 0; i < s.length() - k + 1; i++) {
largest = s.substring(s.length -3);
public static String getSmallestAndLargest(String s, int k) {
String smallest = "";
String largest = "";
char[] strArr = s.toCharArray();
int size = strArr.length;
char smallestChar = smallest_alphabet(strArr, size);
char largestChar = largest_alphabet(strArr, size);
String[] smallestCharStringSet = prepareSetOfString(s, k, smallestChar);
String[] largestCharStringSet = prepareSetOfString(s, k, largestChar);
smallest = smallestString(smallestCharStringSet);
largest = largestString(largestCharStringSet);
return smallest + "\n" + largest;
}
public static String[] prepareSetOfString(String s, int k, char c){
int count = getCharCount(s,c);
String[] possibleStringCollection = new String[count];
String operationString = s;
possibleStringCollection[0] = operationString;
for(int i=0; i< count; i++){
int indexOfChar = operationString.indexOf(c+"");
if(indexOfChar+k <= operationString.length()){
possibleStringCollection[i] = operationString.substring(indexOfChar, indexOfChar+k);
operationString = operationString.substring(operationString.indexOf(c+"")+1);
}
}
return possibleStringCollection;
}
public static String smallestString(String[] smallestCharStringSet){
String smallestString = smallestCharStringSet[0];
for(int i = 0; i < smallestCharStringSet.length; i++){
if(smallestCharStringSet[i] != null)
if(smallestString.compareTo(smallestCharStringSet[i]) > 0)
{
smallestString = smallestCharStringSet[i];
}
}
return smallestString;
}
public static String largestString(String[] largestCharStringSet){
String largestString = largestCharStringSet[0];
for(int i = 0; i < largestCharStringSet.length; i++){
if(largestCharStringSet[i] != null)
if(largestString.compareTo(largestCharStringSet[i]) < 0)
{
largestString = largestCharStringSet[i];
}
}
return largestString;
}
public static int getCharCount(String s, char c)
{
int count = 0;
for(int i = 0; i < s.length(); i++)
{
if(s.charAt(i) == c)
count++;
}
return count;
}
public static char largest_alphabet(char a[], int n)
{
char max = 'A';
for (int i=0; i<n; i++)
if (a[i] > max)
max = a[i];
return max;
}
public static char smallest_alphabet(char a[], int n)
{
char min = 'z';
for (int i=0; i<n-1; i++)
if (a[i] < min)
min = a[i];
return min;
}