nikunjsoni

1864

May 17th, 2021
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int minSwaps(string s) {
  4.         int oddOnes = 0, evenOnes = 0, countOnes = 0;
  5.         for(int i=0; i<s.length(); i++){
  6.             int ch = s[i]-'0';
  7.             if(ch == 0) countOnes++;
  8.             if(i&1 && !ch) oddOnes++;
  9.             if(i%2 == 0 && !ch) evenOnes++;
  10.         }
  11.         int n = s.length();
  12.         if(n&1){
  13.             if(countOnes == n/2){
  14.                 return (n/2)-oddOnes;
  15.             }
  16.             else if(countOnes == (n/2)+1){
  17.                 return (n/2)+1-evenOnes;
  18.             }
  19.         }
  20.         else{
  21.             if(countOnes == n/2)
  22.                 return ((n/2)-max(oddOnes, evenOnes));
  23.         }
  24.         return -1;
  25.     }
  26. };
Advertisement
Add Comment
Please, Sign In to add comment