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}
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
Also Check:
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!
Tags:
HackerRank Java