Minimum Number of Swaps to Make the Binary String Alternating LeetCode solution in C++
1class Solution {2int minFillPos(string &s, char ch, int current = 0) {3int count = 0;4for (int i = 0; i < s.size(); i += 2) {5if (s[i] != ch) count++;6}7return count;8}910public:11int minSwaps(string s) {12int oneCount = count(s.begin(), s.end(), '1');13int zeroCount = count(s.begin(), s.end(), '0');14if (abs(oneCount - zeroCount) > 1) return -1;15if (oneCount > zeroCount) return minFillPos(s, '1');16if (zeroCount > oneCount) return minFillPos(s, '0');17return min(minFillPos(s, '0'), minFillPos(s, '1'));18}19};