LeetCode 2027. Minimum Moves to Convert String
考点 | 难度 |
---|---|
Greedy | Easy |
题目
You are given a string s
consisting of n characters which are either ‘X’ or ‘O’.
A move is defined as selecting three consecutive characters of s
and converting them to ‘O’. Note that if a move is applied to the character ‘O’, it will stay the same.
Return the minimum number of moves required so that all the characters of s
are converted to ‘O’.
思路
每次需要考虑三个字母的substring,把这三个都改成O之后跳到下一个三位。所以只有在遇到X的时候step加一,index向后移三位,遇到O直接跳到下一个X。
答案
public int minimumMoves(String s) {
int count = 0;
for (int i = 0; i < s.length();) {
if (s.charAt(i) == 'X') {
count++;
i += 3;
} else {
i++;
}
}
return count;
}