Java Substring Comparisons

Sort by

recency

|

1732 Discussions

|

  • + 0 comments

    My solution:

    public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            
            String s = sc.nextLine();
            int k = sc.nextInt();
            String smallest = "";
            String largest = "";
            
            sc.close();
            
            ArrayList<String> arrayList = new ArrayList<>();
    
            for (int i = 0; i < s.length(); i++) {
    
                if ((i + k) <= s.length()) {
                    arrayList.add(s.substring(i, i + k));
                }
            }
    
            smallest = Collections.min(arrayList);
            largest = Collections.max(arrayList);
    
            System.out.println(smallest + "\n" + largest);
        }
    
  • + 0 comments

    import java.util.Scanner;

    public class Solution {

    public static String getSmallestAndLargest(String s, int k) {
    
        String smallest = s.substring(0,k);
        String largest = s.substring(0,k);
    
        for (int i = 1 ; i + k <= s.length() ; i++) {
    
            String myWord = s.substring(i,i+k);
    
            if (smallest.compareTo(myWord) > 0) {
    
                smallest =  myWord ;
    
            } 
    
            if (largest.compareTo(myWord) < 0) {
    
                largest = myWord ;
    
            }
        }
    
    
        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));
    }
    

    }

  • + 0 comments

    import java.io.; import java.util.;

    public class Solution {

    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        String s=scanner.next();
        int k=scanner.nextInt();
        ArrayList<String> sub=new ArrayList<>();
        for(int i=0;i<s.length();i++){
            if(i < s.length()-(k-1)){
               String subVals=s.substring(i,i+k); 
               sub.add(subVals);
    
            }
        }
        Collections.sort(sub);
        String first=sub.get(0);
        String last=sub.get(sub.size()-1);
        System.out.print(first + "\n" + last);
    }
    

    }

  • + 0 comments

    my solution -

    public static String getSmallestAndLargest(String s, int k) {
            String smallest = "";
            String largest = "";
            java.util.ArrayList<String> array = new java.util.ArrayList<String>();
                    
            for (int i=0; i <= (s.length() - k); i++) {
                array.add(s.substring(i, i+k));
            }
            
            java.util.Collections.sort(array); 
    
            smallest = array.get(0);
            largest = array.get(array.size() - 1);
         
            
            return smallest + "\n" + largest;
        }
    
  • + 0 comments
    public class Solution {
        public static String getSmallestAndLargest(String s, int k) {
            String smallest = "";
            String largest = "";
                    
            smallest = s.substring(0, k);
            largest = s.substring(0, k);
            
            for (int i = 1; i <= s.length() - k; i++) {
                String substring = s.substring(i, i + k);
                
                if (substring.compareTo(smallest) < 0) {
                    smallest = substring;
                }
                if (substring.compareTo(largest) > 0) {
                    largest = substring;
                }
            }
            
            return smallest + "\n" + largest;
    }