We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
  • Hackerrank Home
  • Prepare
    NEW
  • Certify
  • Compete
  • Career Fair
  • Hiring developers?
  1. Prepare
  2. Java
  3. Data Structures
  4. Java BitSet
  5. Discussions

Java BitSet

Problem
Submissions
Leaderboard
Discussions
Editorial

Sort 140 Discussions, By:

recency

Please Login in order to post a comment

  • uggoprince
    38 minutes ago+ 0 comments

    Here is the solution.

    public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int m = sc.nextInt();
            BitSet b1 = new BitSet(n);
            BitSet b2 = new BitSet(n);
            for (int i = 0; i < m; i++) {
                String op = sc.next();
                int p1 = sc.nextInt();
                int p2 = sc.nextInt();
                if (op.equals("AND")) {
                    if (p1 == 1) {b1.and(b2);}
                    else {b2.and(b1);}
                }
                else if (op.equals("OR")) {
                    if (p1 == 1) {b1.or(b2);}
                    else {b2.or(b1);}
                }
                else if (op.equals("FLIP")) {
                    if (p1 == 1) {
                        b1.flip(p2);
                    } else {
                        b2.flip(p2);
                    }
                }
                else if (op.equals("SET")) {
                    if (p1 == 1) {
                        b1.set(p2);
                    } else {
                        b2.set(p2);
                    }
                }
                else if (op.equals("XOR")) {
                    if (p1 == 1) {b1.xor(b2);}
                    else {b2.xor(b1);}
                }
                System.out.println(b1.cardinality() + " " + b2.cardinality());
            }
            sc.close();
        }
    
    0|
    Permalink
  • yash_cs1994
    15 hours ago+ 0 comments

    My JAva Solution

    import java.io.*;
    import java.util.*;
    
    public class Solution {
    
        public static void main(String[] args) {
            /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
            
                Scanner sc=new Scanner(System.in);
            int N=sc.nextInt();
            int M=sc.nextInt();
            BitSet bs1=new BitSet(N);
            BitSet bs2=new BitSet(N);
            for(int i=1;i<=M;i++) {
    
                String operation=sc.next();
                int a=sc.nextInt();
                int b=sc.nextInt();
                if(operation.equals("AND")) {
                    if(a==1) bs1.and(bs2);else bs2.and(bs1); }
                else if(operation.equals("OR")) {
                    if(a==1) bs1.or(bs2);else bs2.or(bs1); }
                else if(operation.equals("XOR")) {
                    if(a==1) bs1.xor(bs2); else bs2.xor(bs1); }
                else if(operation.equals("SET")) {
                    if(a==1)  bs1.set(b, true); else bs2.set(b,true);  }
                else if(operation.equals("FLIP")) {
                    if(a==1) bs1.flip(b); else bs2.flip(b);
                }
                System.out.println(bs1.cardinality()+" "+bs2.cardinality());
            }
        }
    }
    
    0|
    Permalink
  • rashenrashen4
    1 day ago+ 0 comments
    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) {
            /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
            Scanner s=new Scanner(System.in);
            int a=s.nextInt();
            int b=s.nextInt();
            BitSet b1=new BitSet(a);
            BitSet b2=new BitSet(a); 
            b1.set(0, a, false);
            b2.set(0, a, false);
           
            for(int i=0;i<b;i++){
              
              String w=s.next();
              
              int q=s.nextInt();
              int y=s.nextInt();
              if(w.equals("AND"))
              {
                if(q==1)
                {
                  b1.and(b2);
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }else{
                  b2.and(b1);
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }
              }
               else if(w.equals("FLIP"))
              {
                   if(q==1)
                {
                  b1.flip(y);
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }else{
                  b2.flip(y);;
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }
              }
                else if(w.equals("SET"))
              {
                   if(q==1)
                {
                  b1.set(y);;
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }else{
                  b2.set(y);;
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }
              }
                else if(w.equals("OR"))
              {
                   if(q==1)
                {
                  b1.or(b2);
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }else{
                  b2.or(b1);
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }
              }
             
                 else if(w.equals("XOR"))
              {
                   if(q==1)
                {
                  b1.xor(b2);
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }else{
                  b2.xor(b1);
                  System.out.println(b1.cardinality()+" "+b2.cardinality());
                }
              }
              
            }
        }
    }
    
    0|
    Permalink
  • mrashidcit
    2 weeks ago+ 0 comments

    Here is my Solution. Let me know if you need any discussion about this.

    Scanner scanner = new Scanner(System.in);
            int bitSetLength = scanner.nextInt(); int totalOperations = scanner.nextInt();
            scanner.nextLine();
            BitSet bs1 = new BitSet(bitSetLength);
            BitSet bs2 = new BitSet(bitSetLength);
            
            for (int i = 0; i < totalOperations; i++) {
                String line = scanner.nextLine();
                String operation = line.split(" ")[0];
                int oprand1 = Integer.parseInt(line.split(" ")[1]) ;
                int oprand2 = Integer.parseInt(line.split(" ")[2]);
                // System.out.println(operation + " , " + oprand1 + " " + oprand2 );
                // String operation =
                if (operation.equals("AND")) {
                    if(oprand1 == 1) bs1.and(bs2); else  bs2.and(bs1);
                } else if (operation.equals("OR")) {
                    if(oprand1 == 1) bs1.or(bs2); else  bs2.or(bs1);
                } else if (operation.equals("XOR")) {
                    if(oprand1 == 1) bs1.xor(bs2); else  bs2.xor(bs1);
                } else if (operation.equals("SET")) {
                    if (oprand1 == 1) bs1.set(oprand2); else  bs2.set(oprand2);
                } else if (operation.equals("FLIP")) {
                    if (oprand1 == 1) bs1.flip(oprand2); else  bs2.flip(oprand2);
                }
                
                System.out.println(bs1.cardinality()  + " " + bs2.cardinality() ); 
                
            }
    
    0|
    Permalink
  • anggitamahardika
    2 weeks ago+ 0 comments
    Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            int m = in.nextInt();
            
            BitSet bs1 = new BitSet(n);
            BitSet bs2 = new BitSet(n);
            
            ArrayList<BitSet> bits = new ArrayList<>();
            bits.add(bs1);
            bits.add(bs2);
            
            for (int i = 0; i < m ; i++) {
                String operator = in.next();
                int pos1 = in.nextInt();
                int pos2 = in.nextInt();
                
                if (operator.equals("AND")) {
                    bits.get(pos1-1).and(bits.get(pos2-1));              
                } else if (operator.equals("OR")) {
                    bits.get(pos1-1).or(bits.get(pos2-1));   
                } else if (operator.equals("XOR")) {
                    bits.get(pos1-1).xor(bits.get(pos2-1));     
                } else if (operator.equals("FLIP")) {
                    bits.get(pos1-1).flip(pos2);   
                } else if (operator.equals("SET")) {
                    bits.get(pos1-1).set(pos2);    
                }
                
                int sum1 = bits.get(0).cardinality();
                int sum2 = bits.get(1).cardinality();
                
                System.out.println(sum1+" "+sum2);
            }        
    
    0|
    Permalink
Load more conversations

Need Help?


View editorial
View top submissions
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy