Java Substring Comparisons

  • + 0 comments

    public static String getSmallestAndLargest(String s, int k) { String smallest = ""; String largest = "";

    // Complete the function
    // 'smallest' must be the lexicographically smallest substring of length 'k'
    // 'largest' must be the lexicographically largest substring of length 'k'
    int n=s.length();
    smallest=s.substring(0,k);
    largest=s.substring(0,k);
    
    for(int i=0;i<n-k;i++) //selection sort
    {
        String sm = s.substring(i,i+k);
        String lg = s.substring(i,i+k);
        for(int j=i+1;j<n+1-k;j++) {
            String t = s.substring(j,j+k);
            if(t.compareTo(sm)<=0) 
                sm=t;
            if(t.compareTo(lg)>=0)
                lg = t;
        }
        if(sm.compareTo(smallest)<=0)
            smallest=sm;
        if(lg.compareTo(largest)>=0)
            largest=lg;
    }
    
    return smallest + "\n" + largest;
    

    }

    public static void main(String[] args) { Scanner scan = new Scanner(System.in); String s = scan.next(); int k = scan.nextInt(); scan.close();

    System.out.println(getSmallestAndLargest(s, k));
    

    }