Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int minSwaps(string s) {
- int oddOnes = 0, evenOnes = 0, countOnes = 0;
- for(int i=0; i<s.length(); i++){
- int ch = s[i]-'0';
- if(ch == 0) countOnes++;
- if(i&1 && !ch) oddOnes++;
- if(i%2 == 0 && !ch) evenOnes++;
- }
- int n = s.length();
- if(n&1){
- if(countOnes == n/2){
- return (n/2)-oddOnes;
- }
- else if(countOnes == (n/2)+1){
- return (n/2)+1-evenOnes;
- }
- }
- else{
- if(countOnes == n/2)
- return ((n/2)-max(oddOnes, evenOnes));
- }
- return -1;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment