Java Substring Comparisons

  • + 0 comments

    Used selection sort(kinda) import java.util.Scanner;

    public class Solution {

    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));
    }
    

    }