Java String Reverse - Hacker Rank Solution

Java String Reverse - Hacker Rank Solution

 

Java String Reverse


Given a string A, print Yes if it is a palindrome, print No otherwise.

 

Constraints

 

 A will consist of most  50 lower cases English letters.

Sample Input

 

madam

Sample Output

 

Yes


Solution:

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

public class Solution {

    public static void main(String[] args) {
        String b = "";
        Scanner sc=new Scanner(System.in);
        String A=sc.next();
        /* Enter your code here. Print output to STDOUT. */

        int n = A.length();
        for(int i = n - 1; i >= 0; i--)
        {
            b = b + A.charAt(i);
        }
        if(A.equalsIgnoreCase(b))
        {
            System.out.println("Yes");
        }
        else
        {
            System.out.println("No");
        }
        
        
    }
}




Lexicographical Order - Hacker Rank Solution

Lexicographical Order - Hacker Rank Solution

 

Java hackerRank solution

We define the following terms:

 

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

A<B<Z....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.

 

Input Format

 

The first line contains a string denoting s.

The second line contains an integer denoting s.

 

Constraints

1<=|s|<=1000

 S consists of English alphabetic letters only (i.e., [a-zA-Z]).

Output Format

 

Return the respective lexicographically smallest and largest substrings as a single newline-separated string.

 

Sample Input 0

 

welcometojava

3

Sample Output 0

 

ava

wel


Solution:

import java.util.Scanner;

public class Solution {

    public static String getSmallestAndLargest(String sint k) {
        String currStr = s.substring(0, k);
        String smallest = currStr;
        String largest = currStr;

   
        
        // Complete the function
        // 'smallest' must be the lexicographically smallest substring of length 'k'
        // 'largest' must be the lexicographically largest substring of length 'k'
        
        for (int i = k; i < s.length(); i++) { 
            currStr = currStr.substring(1, k) + s.charAt(i); 
            if (largest.compareTo(currStr) < 0)      
                 largest = currStr; 
            if (smallest.compareTo(currStr) > 0
                 smallest = currStr;             
        } 
  
        // Print result. 
         
        return smallest + "\n" + largest;
    }


Java Substring - Hacker Rank Solution

Java Substring - Hacker Rank Solution

Java hackerRank solution

 

Given a string,s , and two indices, start, and end, print a substring consisting of all characters in the inclusive range from start to end - 1. You'll find the String class' substring method helpful in completing this challenge.

 

Input Format

 

The first line contains a single string denoting s.

The second line contains two space-separated integers denoting the respective values of start  and end.



Solution:

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String S = in.next();
        int start = in.nextInt();
        int end = in.nextInt();
        System.out.println(S.subSequence(start, end));
        
    }
}
Java Strings Introduction- Hacker Rank Solution

Java Strings Introduction- Hacker Rank Solution

Java hackerRank solution

 

This exercise is to test your understanding of Java Strings. A sample String declaration:

 

String myString = "Hello World!"

The elements of a String are called characters. The number of characters in a String is called the length, and it can be retrieved with the String.length() method.

 

Given two strings of lowercase English letters,A  and B, perform the following operations:

 

Sum the lengths of  A and B.

Determine if A is lexicographically larger than B  (i.e.: does  come before  in the dictionary?).

Capitalize the first letter in A  and B and print them on a single line, separated by a space.

Input Format

 

The first line contains a string A . The second line contains another string B . The strings are comprised of only lowercase English letters.

 

Output Format

 

There are three lines of output:

For the first line, sum the lengths of  A and B .

For the second line, write Yes if A is lexicographically greater than B otherwise print No instead.

For the third line, capitalize the first letter in both A  and B and print them on a single line, separated by a space.

 

Sample Input 0

 

hello

java

Sample Output 0

 

9

No

Hello Java


Solution:

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

public class Solution {

    public static void main(String[] args) {
        
        Scanner sc=new Scanner(System.in);
        String A=sc.next();
        String B=sc.next();
        /* Enter your code here. Print output to STDOUT. */
        
        int a = A.length();
        int b = A.length();
        System.out.println(A.length()+B.length());
System.out.println(A.compareTo(B)>0?"Yes":"No");
System.out.println(A.substring(01).toUpperCase()+A.substring(1A.length())+" "+B.substring(01).toUpperCase()+B.substring(1B.length()));
    }

}



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

public class Solution {

    public static void main(String[] args) {
        
        Scanner sc=new Scanner(System.in);
        String A=sc.next();
        String B=sc.next();
        /* Enter your code here. Print output to STDOUT. */
        
        int a = A.length();
        int b = A.length();
        System.out.println(A.length()+B.length());
System.out.println(A.compareTo(B)>0?"Yes":"No");
System.out.println(A.substring(01).toUpperCase()+A.substring(1A.length())+" "+B.substring(01).toUpperCase()+B.substring(1B.length()));
    }

}





 Java Currency Formatter HackerRank Solutions

Java Currency Formatter HackerRank Solutions


 Java Currency Formatter

Java Currency Formatter

Given a double-precision number, payment, denoting an amount of money, use the NumberFormat class' getCurrencyInstance method to convert payment  into the US, Indian, Chinese, and French currency formats. Then print the formatted values as follows:

 

US: formattedPayment

India: formattedPayment

China: formattedPayment

France: formattedPayment

Where formattedPayment  is payment  formatted according to the appropriate Locale's currency.

 

Note: India does not have a built-in Locale, so you must construct one where the language is en (i.e., English).

 

Input Format

 

A single double-precision number denoting payment.

 

Constraints

0<=payment<=10^9

Output Format

 

On the first line, print US: u where u is payment  formatted for US currency.

On the second line, print India: i where i  is payment  formatted for Indian currency.

On the third line, print China: c where c  is payment formatted for Chinese currency.

On the fourth line, print France: f, where f is payment formatted for French currency.

 

Sample Input

 

12324.134

Sample Output

 

US: $12,324.13

India: Rs.12,324.13

China: 12,324.13

France: 12 324,13 €

Explanation

 

Each line contains the value of payment  formatted according to the four countries' respective currencies.


Solutions:

import java.util.Scanner;
import java.text.NumberFormat;
import java.util.Locale;

public class Solution {
    
    public static void main(String[] args) {
        /* Read input */
        Scanner scanner = new Scanner(System.in);
        double payment = scanner.nextDouble();
        scanner.close();

        /* Create custom Locale for India. 
          I used the "IANA Language Subtag Registry" to find India's country code */
        Locale indiaLocale = new Locale("en""IN");

        /* Create NumberFormats using Locales */
        NumberFormat us     = NumberFormat.getCurrencyInstance(Locale.US);
        NumberFormat india  = NumberFormat.getCurrencyInstance(indiaLocale);
        NumberFormat china  = NumberFormat.getCurrencyInstance(Locale.CHINA);
        NumberFormat france = NumberFormat.getCurrencyInstance(Locale.FRANCE);

        /* Print output */        
        System.out.println("US: "     + us.format(payment));
        System.out.println("India: "  + india.format(payment));
        System.out.println("China: "  + china.format(payment));
        System.out.println("France: " + france.format(payment));
    }
}
Java Date and Time Hacker Rank solution

Java Date and Time Hacker Rank solution

 

Java Date and Time Hacker Rank solution

The Calendar class is an abstract class that provides methods for converting between a specific instant in time and a set of calendar fields such as YEAR, MONTH, DAY_OF_MONTH, HOUR, and so on, and for manipulating the calendar fields, such as getting the date of the next week.

 

You are given a date. You just need to write the method, getDay, which returns the day on that date. To simplify your task, we have provided a portion of the code in the editor.

 

For example, if you are given the date  August 14th 2017, the method should return MONDAY  as the day on that date.


Solution:

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
import java.time.LocalDate;
class Result {

    /*
     * Complete the 'findDay' function below.
     *
     * The function is expected to return a STRING.
     * The function accepts following parameters:
     *  1. INTEGER month
     *  2. INTEGER day
     *  3. INTEGER year
     */

    public static String findDay(int monthint dayint year) {
        return LocalDate.of(year, month, day).getDayOfWeek().name();

    }

}

public class Solution {
    public static void main(String[] argsthrows IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));

        String[] firstMultipleInput = bufferedReader.readLine().replaceAll("\\s+$""").split(" ");

        int month = Integer.parseInt(firstMultipleInput[0]);

        int day = Integer.parseInt(firstMultipleInput[1]);

        int year = Integer.parseInt(firstMultipleInput[2]);

        String res = Result.findDay(month, day, year);

        bufferedWriter.write(res);
        bufferedWriter.newLine();

        bufferedReader.close();
        bufferedWriter.close();
    }
}

Static initialization blocks - hacker Rank Solution

Static initialization blocks - hacker Rank Solution


Static initialization blocks.

Static initialization blocks are executed when the class is loaded, and you can initialize static variables in those blocks. 

You are given a class Solution with the main method. Complete the given code so that it outputs the area of a parallelogram with breadth B and height H. You should read the variables from the standard input.

 

If  B<=0 or H<=0, the output should be "java.lang.Exception: Breadth and height must be positive" without quotes.

 

Input Format

 

There are two lines of input. The first line contains : the breadth of the parallelogram. The next line contains: the height of the parallelogram.



Solution:

import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

static Scanner scan = new Scanner(System.in);
static int B = scan.nextInt();
static int H = scan.nextInt();
static boolean flag = true;
static{
    try{
        if(B <= 0 || H <= 0){
            flag = false;
            throw new Exception("Breadth and height must be positive");
        }
    }catch(Exception e){
        System.out.println(e);
    }

}
public static void main(String[] args){
        if(flag){
            int area=B*H;
            System.out.print(area);
        }
        
    }//end of main

}//end of class