题目链接
分析
对于每两个相邻的不同值,均要进行操作使其相等
遍历遇到相邻的值不同时,选择 $i$ 和 $n-i$ 中比较小的即可
代码实现
class Solution {
public:
long long minimumCost(string s) {
long long ans = 0;
int n = s.size();
for(int i = 1; i < n; ++i) {
if(s[i - 1] != s[i])
ans += min(i, n - i);
}
return ans;
}
};
复杂度分析
- 时间复杂度:$O(n)$
- 空间复杂度:$O(1)$