Can You Access Java HackerRank Solution

Can You Access Java HackerRank Solution

Hello Friends, How are you? Today I will solve the HackerRank Java Can You Access - Problem with a straightforward explanation. In this article, you will get more than one approach to solve this problem. So let's start-

{tocify} $title={Table of Contents}

Can You Access Java HackerRank Solution

HackerRank Java Can You Access - Problem Statement

You are given a class Solution and an inner class Inner.Private. The main method of class Solution takes an integer num as input. The powerof2 in class Inner.Private checks whether a number is a power of 2. You have to call the method powerof2 of the class Inner.Private from the main method of the class Solution.

Constraints: 

1 <= num <= 2^30

Sample Input

8 {codeBox}

Sample Output

8 is power of 2 An instance of class: Solution.Inner.Private has been created {codeBox}

Java Can You Access HackerRank Solution

Java Can You Access - Hacker Rank Solution

Approach I: Java Can You Access - Solution HackerRank

// ========================
//       Information
// ========================

// Name: Java Can You Access HackerRank Problem
// Direct Link: https://www.hackerrank.com/challenges/can-you-access/problem
// Difficulty: Medium
// Max Score: 15
// Language: Java 7

// ========================
//         Solution Start
// ========================

// Java Can You Access - Hacker Rank Solution Start

import java.io.*;
import java.lang.reflect.*;
import java.util.*;
import java.util.regex.*;
import java.security.*;


public class Solution {

	public static void main(String[] args) throws Exception {
		DoNotTerminate.forbidExit();	

		try{
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			int num = Integer.parseInt(br.readLine().trim());
			Object o;

// Must be used to hold the reference of the instance of the class Solution.Inner.Private
            
            o = new Inner().new Private();
System.out.println(""+num+" is "+((Inner.Private)o).powerof2(num));
            
		System.out.println("An instance of class: " + o.getClass().getCanonicalName() + " has been created");
		
		}//end of try
		
		catch (DoNotTerminate.ExitTrappedException e) {
			System.out.println("Unsuccessful Termination!!");
		}
	}//end of main
	static class Inner{
		private class Private{
			private String powerof2(int num){
				return ((num&num-1)==0)?"power of 2":"not a power of 2";
			}
		}
	}//end of Inner
	
}//end of Solution

class DoNotTerminate { //This class prevents exit(0)
	 
    public static class ExitTrappedException extends SecurityException {

		private static final long serialVersionUID = 1L;
    }
 
    public static void forbidExit() {
        final SecurityManager securityManager = new SecurityManager() {
            @Override
            public void checkPermission(Permission permission) {
                if (permission.getName().contains("exitVM")) {
                    throw new ExitTrappedException();
                }
            }
        };
        System.setSecurityManager(securityManager);
    }
}

// Java Can You Access Hacker Rank Solution END
// MyEduWaves

Approach II: Java Can You Access - Solution HackerRank

// ========================
//       Information
// ========================

// Name: Java Can You Access HackerRank Problem
// Direct Link: https://www.hackerrank.com/challenges/can-you-access/problem
// Difficulty: Medium
// Max Score: 15
// Language: Java 7

// ========================
//         Solution Start
// ========================

// Java Can You Access - Hacker Rank Solution Start

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.security.Permission;

public class Solution {
	public static void main(String[] args) throws Exception {
		Do_Not_Terminate.forbidExit();

		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			int num = Integer.parseInt(br.readLine().trim());
			Object o;

			// Must be used to hold the reference of the instance of
			// the class Solution.Inner.Private

			Inner inner = new Inner();
			Inner.Private p = inner.new Private();
			System.out.println(num + " is " + p.powerof2(num));
			o = p;

			System.out.println("An instance of class: " + o.getClass().getCanonicalName() + " has been created");

		} // end of try

		catch (Do_Not_Terminate.ExitTrappedException e) {
			System.out.println("Unsuccessful Termination!!");
		}
	}// end of main

	static class Inner {
		private class Private {
			private String powerof2(int num) {
				return ((num & num - 1) == 0) ? "power of 2" : "not a power of 2";
			}
		}
	}// end of Inner

}// end of Solution

class Do_Not_Terminate {

	public static class ExitTrappedException extends SecurityException {

		private static final long serialVersionUID = 1L;
	}

	public static void forbidExit() {
		final SecurityManager securityManager = new SecurityManager() {
			@Override
			public void checkPermission(Permission permission) {
				if (permission.getName().contains("exitVM")) {
					throw new ExitTrappedException();
				}
			}
		};
		System.setSecurityManager(securityManager);
	}
}

// Java Can You Access Hacker Rank Solution END
// MyEduWaves


Disclaimer: The above Problem ( Java Can You Access ) is generated by Hackerrank but the Solution is Provided by MyEduWaves. This tutorial is only for Educational and Learning purposes. Authority if any queries regarding this post or website fill out the contact form.

I hope you have understood the solution to this HackerRank Problem. All these three solutions will pass all the test cases. Now visit Java Can You Access - Hackerrank Problem and try to solve it again.

All the Best!

Post a Comment

Previous Post Next Post