We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
  • HackerRank Home

    HackerRank

  • |
  • Prepare
  • Certify
  • Compete
  • Hiring developers?
  1. Prepare
  2. Java
  3. Strings
  4. Java Substring Comparisons
  5. Discussions

Java Substring Comparisons

Problem
Submissions
Leaderboard
Discussions
Editorial

Sort 1500 Discussions, By:

recency

Please Login in order to post a comment

  • Klebern22
    1 day ago+ 0 comments

    Solution in java 15. I had to import ArrayList and Comparator classes.

    public static void main(String[] args) {
    
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int k = scan.nextInt();
    
        ArrayList<String> lista = new ArrayList<String>();
        for (int i= 0; i < s.length()-(k-1);i++){
            lista.add(s.substring(i,k+i));
        }
    
        lista.sort(Comparator.naturalOrder());
        System.out.println(lista.get(0));
        System.out.println(lista.get(lista.size()-1));
    }
    

    }

    0|
    Permalink
  • abirajp04
    3 days ago+ 0 comments
    public static String getSmallestAndLargest(String s, int k) {
            String smallest = "";
            String largest = "";
            largest = s.substring(0,k);
            smallest = s.substring(0,k);
            
            for(int i =0;i<=s.length()-k;i++)
            {
                if(largest.compareTo(s.substring(i,k+i))<0)
                largest=s.substring(i,k+i);
                
                if(smallest.compareTo(s.substring(i,k+i))>0)
                smallest=s.substring(i,k+i);
            }
            return smallest + "\n" + largest;
        }
    
    2|
    Permalink
  • 191FA04443
    1 week ago+ 0 comments

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

    public class Solution {

    public static void main(String[] args) {
        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        int k = sc.nextInt();
        System.out.println(smallestSubString(str,k)+"\n"+largestSubString(str,k));
    }
    static String smallestSubString(String str,int k)
    {
        List<String> list = getSubStrings(str,k);
        //int len = list.length;
        return list.get(0);
    }
    static String largestSubString(String str,int k)
    {
        List<String> list = getSubStrings(str,k);
        int len = list.size();
        return list.get(len-1);
    }
    static List<String> getSubStrings(String str, int k)
    {
        List<String> subStr = new ArrayList<String>();
        int l = str.length();
        for(int i=0;i<l;i++)
        {
            String sub = "";
            boolean flag = false;
            for(int j=i;j<i+k;j++)
            {
                if(j>=l)
                {
                    //subStr.add(sub);
                    flag = true;
                    break;
                }
                else
                {
                     sub+=str.charAt(j);  
                }
            }
            if(flag)
            {
                break;
            }
            subStr.add(sub);
        }
        Collections.sort(subStr);
        return subStr;
    }
    

    }

    -1|
    Permalink
  • tuancong309
    1 week ago+ 1 comment

    public static String getSmallestAndLargest(String str, int number) { String smallest = ""; String largest = "";

        for(int i=0;i<=str.length()-number;i++){
            int range = i + number;
            String subStringI = str.substring(i,range);
            if(subStringI.compareTo(largest)>0){
                largest=subStringI;
            }
            if(subStringI.compareTo(smallest)<0){
                smallest=subStringI;
            }
            if(i==0){
                smallest=subStringI;
            }
        }
        return smallest + "\n" + largest;
    }
    
    0|
    Permalink
  • _bansalutkarsh
    1 week ago+ 0 comments
    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 <= 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;
    }
    
    0|
    Permalink
Load more conversations

Need Help?


View editorial
View top submissions
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy