Java Substring Comparisons : Hacker Rank Solution : Digit Wood

Java
,

We define the following terms:

Lexicographical Order, also known as alphabetic or dictionary order, orders characters as follows:

A < B <… < Y < Z < a < b < … < y < z

For example, ball < cat, dog < dorm, Happy < happy, Zoo < ball.

A substring of a string is a contiguous block of characters in the string. For example, the substrings of abc are a, b, c, ab, bc, and abc.
Given a string, s, and an integer, k, complete the function so that it finds the lexicographically smallest and largest substrings of length k.

Function Description

Complete the getSmallestAndLargest function in the editor below.

getSmallestAndLargest has the following parameters:

string s: a string
int k: the length of the substrings to find
Returns

string: the string ‘ + “\n” + ‘ where and are the two substrings
Input Format

The first line contains a string denoting s.
The second line contains an integer denoting k.

Sample Input

Sample Output

SOLUTION:

import java.util.Scanner;
public class Solution {
    public static String getSmallestAndLargest(String s, int k) {

        String largest = "";
        for (int i = 0; i <= s.length() - k; i++) {
            int end = i + k;
            String substr = s.substring(i, end);
            if (largest.compareTo(substr) < 0) {
                largest = substr;
            }
        }
        String smallest = largest;
        for (int i = 0; i <= s.length() - k; i++) {
            int end = i + k;
            String substr = s.substring(i, end);
            if (smallest.compareTo(substr) > 0) {
                smallest = substr;
            }
        }
        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));
    }
}

FOLLOW FOR MORE QUESTIONS AND SOLUTIONS | DIGIT WOOD

Leave a Reply

Your email address will not be published. Required fields are marked *