2027 转换字符串的最少操作次数



【贪心】因为对OOO操作没有意义,只会白白增加操作数,所以我们需要保证相邻的3个字符中至少有一个X,对于第一个X(假设在第i位),我们需要将其变为O(必定要操作),可以第从i - 2位、i - 1位、i位开始操作,如果我们从第i位开始,可以保证至少i + 2位没有X,且无后效性,所以我们每次取第一个X作为开始点,然后进行操作
AC代码:
class Solution {
public:
int minimumMoves(string s) {
int n = s.size(),ans = 0;
for(int i = 0;i < n;i ++)
if(s[i] == 'X')
{
ans ++;
i += 2;
}
return ans;
}
}

本文分享了力扣第261场周赛的解题思路,涉及贪心策略。针对2027题,通过保证相邻字符中至少有一个X来减少操作次数。2028题中,通过计算所需点数判断解的存在性,并逐步调整筛子数值。2029题,分析石子按3的余数可分为三类,探讨先手优势情况。每道题均提供AC代码。
最低0.47元/天 解锁文章
1350

被折叠的 条评论
为什么被折叠?



