• + 0 comments

    How did you solve timeout problem they should have pass test then should about required time limit

    import java.io.; import java.math.; import java.security.; import java.text.; import java.util.; import java.util.concurrent.; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.regex.*; import java.util.stream.Collectors;

    public class Solutions {

    private static final Scanner scanner = new Scanner(System.in);
    
    
    static Map<BigInteger,Integer> powervalueMap = new HashMap<>();
    public static int twoTwo (String input) {
    
        int result = 0;
        if(input==null|| input=="") {
            return 0;
        }
        int len=input.length();
    
    
    
    //List<String> dataSet= breakInSets(input);
     int foundcounter=0;
    // int klen=dataSet.size();
     String data="";
     /*
     long t1=System.nanoTime();
    

    for(int k=0;k 0) { //System.out.println("data="+data); BigInteger val=new BigInteger(""+data); if(isPower2(val)) { foundcounter++; } } }; long t2=System.nanoTime(); System.out.println("1. total time"+(t2-t1)); */ // final AtomicInteger resultSai = new AtomicInteger(0); // Parallel stream implementation //long countsai = dataSet.stream().filter(Solutions::isPower22).count();

    // Predicate<Integer> lesserthandiv2 = i -> (isDividenby2(i));
    
    //.....Predicate<String> p1 = c -> ( isPower22(c));
    //..List<String> dataSet2=  breakInSets(input);
    //t1=System.nanoTime();
    //long foundcounter1=dataSet2.parallelStream().filter(p1).count();//forEach(){xa->if(isPower22(xa  )) {};};
    //.................long foundcounter1=dataSet2.stream().filter(p1).count();
    int foundcounter1=breakInSetsCount(input);
     //t2=System.nanoTime();
     //System.out.println("2. total time"+(t2-t1));
            //print(" strem way count sai ji "+countsai1);
    //Function<Integer> fun = x->(x*3);
    
    //dataSet2.stream().filter(p1).map( xx-> xx*3 ).count();
    
    if(foundcounter1>0) {
        result=(int)foundcounter1;
    }
    //System.out.println("foundcounter="+foundcounter);
        return result;
    }
    
    
    public static boolean isPower22(String str  ) {
    
        //print("isPower22 input... "+str);
        if(str==""||str ==null||str==" "||" ".equals(str)||str.length() ==0) {
            return false;
        }
        BigInteger number = new BigInteger(str);
    
         boolean  flag =false;
    
            for( BigInteger x: powervalue) {
                //print(" x="+x+" number"+number);
            if(x.compareTo(number) ==0) {
                //print("mtch found  IF x="+x+" number"+number);
                flag=true;
                break;
            }else if(x.compareTo(number) > 0) {//x>n
                break;
            }else {
                //print("else  x="+x+" number"+number);
            }
        }
            //print(number+" flag "+flag);
        return flag;
    }
    

    public static boolean isPower22Map(String str ) {

        //print("isPower22 input... "+str);
        if(str==""||str ==null||str==" "||" ".equals(str)||str.length() ==0) {
            return false;
        }
        BigInteger number = new BigInteger(str);
    
         boolean  flag =false;
    if(powervalueMap.get(number)!=null) {
        return true;
    }
    
        return flag;
    }
    //
    public static boolean isPower2(BigInteger number ) {
    
         boolean  flag =false;
    
            for( BigInteger x: powervalue) {
                //print(" x="+x+" number"+number);
            if(x.compareTo(number) ==0) {
                //print("mtch found  IF x="+x+" number"+number);
                flag=true;
                break;
            }else if(x.compareTo(number) > 0) {//x>n
                break;
            }else {
                //print("else  x="+x+" number"+number);
            }
        }
            //print(number+" flag "+flag);
        return flag;
    }
    
    public static boolean powersetFLag =false;
    public static BigInteger  powervalue[]=new BigInteger[800];
    
    public static int breakInSetsCount(String inpurMsg) {
        inpurMsg=inpurMsg+" ";
    
        int  result = 0;
        if(inpurMsg!="" ||inpurMsg!=null  ) {
            int len =inpurMsg.length();
            for(int i=0; i < len;i++) {
                //let 1,2,3,4
                String temp=inpurMsg.substring(i);
                int len2 =temp.length();
                if(len2>0 &&!"0".equals(temp.substring(0,1))&& !" ".equals(temp.substring(0,1))) {
    
                for(int j=0;j < len2;j++) {
    
                    if(isPower22Map(temp.substring(0,j))) {
    
                        result++;
                    }
                }
                }
            }
    
        }
        //System.out.println(" result >>>>>>>>>>>>>>>>>>>>>"+result);
        return  result;
    }
    
    public static List<String> breakInSets(String inpurMsg) {
        inpurMsg=inpurMsg+" ";
    
        List<String> result = new ArrayList<String>();
        if(inpurMsg!="" ||inpurMsg!=null  ) {
            int len =inpurMsg.length();
            for(int i=0; i < len;i++) {
                //let 1,2,3,4
                String temp=inpurMsg.substring(i);
                int len2 =temp.length();
                if(len2>0 &&!"0".equals(temp.substring(0,1))&& !" ".equals(temp.substring(0,1))) {
    
                for(int j=0;j < len2;j++) {
                    result.add(temp.substring(0,j));
                }
                }
            }
    
        }
    
        return  result;
    }
    
    public static void setPowers() {
    
        if(!powersetFLag) {
            powersetFLag=true;
            for( int i =0; i < 800;i++) {
                //powervalue[i]=(BigInteger)Math.pow(2, i+1);
    
                powervalue[i]= BigDecimal.valueOf(Math.pow(2, i+1)).toBigInteger();
            }
        }
    }
    
    public static void setPowersMap() {
    
    
            for( int i =0; i < 800;i++) {
                //powervalue[i]=(BigInteger)Math.pow(2, i+1);
    
                powervalueMap.put( BigDecimal.valueOf(Math.pow(2, i+1)).toBigInteger(),1);
            }
    
    }
    static int camelcase(String s) {
        if(s==null||s=="" ||s.length()==0) {
            return 0;
        }
    

    int result =1; char[] arr=s.toCharArray(); char[] al= {'Q','W','E','R','T','Y','U','I','O','P','A','S','D','F','G','H','J','K','L','Z','X','C','V','B','N','M'}; for( int i=0; i < arr.length;i++) { for( int j=0;j< 26;j++) { if(arr[i]==al[j]) { result++; } } } return result; }

    public static void main(String[] args) throws IOException {
        setPowers();
        setPowersMap();;
        System.out.println(powervalueMap);
        /*
         2222222
    

    24256 65536 023223 33579 */ print("**************************2222222 result ..."+twoTwo("2222222")); print("****************************24256 result "+twoTwo("24256")); print("****************************5665536 result "+twoTwo("5665536")); print("********************023223 result "+twoTwo("023223")); print("******************33579 result "+twoTwo("33579")); String sai=""; ; ; //BigInteger k = BigDecimal.valueOf(doublevalue).toBigInteger(); sai="9223372036854775807"; print("****************"+sai); print(".............."+twoTwo(sai)); //print("max value "+Math.pow(2,Integer.MAX_VALUE)); //print(".............."+twoTwo(""+Math.pow(2,Integer.MAX_VALUE))); /* print("24256");BigInteger print(breakInSets("24256")); print("1"); print(breakInSets("1")); print("12"); print(breakInSets("12")); print("123"); print(breakInSets("123")); print("1234"); print(breakInSets("1234")); print("12345"); print(breakInSets("12345"));

    print("123456");
    print(breakInSets("123456"));
    
    
    
    */
    
    print("023223");
    print(breakInSets("023223"));
    }
    
    
    
    
    static void print(Object[] a) {
        System.out.print("  \n");
        for (int i = 0; i < a.length; i++) {
            System.out.print("  " + a[i]);
        }
    }
    static void print(List a) {
        System.out.print("  \n");
        for (int i = 0; i < a.size(); i++) {
            System.out.print("  " + a.get(i));
        }
    }
    static void print(int[] a) {
        System.out.print("  \n");
        for (int i = 0; i < a.length; i++) {
            System.out.print("  " + a[i]);
        }
    }
    static void print(BigInteger[] a) {
        System.out.print("  \n");
        for (int i = 0; i < a.length; i++) {
            System.out.print("  " + a[i]);
        }
    }
    static void print(int a) {
    
        System.out.print(" \n " + a);
    
    }
    
    static void print(String a) {
    
        System.out.println("\n"+ a);
    
    }
    

    }