题目要求黑球(1)全部在右边,白球(0)全部在左边,则将所有不在最右边的黑球往右移。
设定res作为结果,cnt作为黑球个数。可以将字符串s从左到右遍历,遍历到白球,说明前面的所有黑球都要往右移一步,
res=+cnt,遍历到黑球,cnt+1,遍历完字符串s,res即为结果。
C++ 代码
class Solution {
public:
long long minimumSteps(string s) {
long long res=0;
int cnt=0;
for(int i=0;s[i];i++)
{
if(s[i]=='1')cnt++;
else
{
res=res+cnt;
}
}
return res;
}
};