Loading... > https://leetcode.cn/problems/separate-black-and-white-balls/description/?envType=daily-question&envId=2024-05-02 最终结果要求左边全是 0 ,右边全是 1,因此每个 0 都要和其左边所有的 1 进行交换。遍历的时候同时统计 1 的个数,遇到 0 则加上即可。 ```c++ class Solution { public: long long minimumSteps(std::string s) { long long res = 0; int sum = 0; for (auto &c : s) c == '1' ? ++sum : res += sum; return res; } }; ``` - 时间复杂度:$O(n)$ ,其中 $n$ 为 `s` 的长度。 - 空间复杂度:$O(1)$ 。 最后修改:2024 年 06 月 06 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏