2160. Minimum Sum of Four Digit Number After Splitting Digits leetcode solution in c++

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

class Solution {
public:
    int minSumAfterSplit(string s) {
        int n = s.size();
        vector<int> leftOnes(n, 0), rightZeros(n, 0);

        leftOnes[0] = (s[0] == '1');
        rightZeros[n - 1] = (s[n - 1] == '0');

        for (int i = 1; i < n; ++i) {
            leftOnes[i] = leftOnes[i - 1] + (s[i] == '1');
        }

        for (int i = n - 2; i >= 0; --i) {
            rightZeros[i] = rightZeros[i + 1] + (s[i] == '0');
        }

        int minSum = min(leftOnes[n - 1], rightZeros[0]);

        for (int i = 0; i < n - 1; ++i) {
            minSum = min(minSum, leftOnes[i] + rightZeros[i + 1]);
        }

        return minSum;
    }
};

int main() {
    Solution sol;
    string s = "011011";
    int result = sol.minSumAfterSplit(s);
    cout << "Minimum Sum: " << result << endl;
    return 0;
}