「每日LeetCode」2022年5月18日

本文最后更新于:2023年3月19日 晚上

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

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

给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。
在比较时,字母是依序循环出现的。举个例子:

  • 如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’

示例 1:
输入: **letters = [“c”, “f”, “j”],target = “a” **输出: “c”
示例 2:
输入: letters = [“c”,”f”,”j”], target = “c” 输出: “f”
示例 3:
输入: letters = [“c”,”f”,”j”], target = “d” 输出: “f”

提示:

  • 2 <= letters.length <= 104
  • letters[i] 是一个小写字母
  • letters 按非递减顺序排序
  • letters 最少包含两个不同的字母
  • target 是一个小写字母

思路

按题意模拟即可,贪心算法,遇到 X 就技术并往后跳 3 位

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/*
* @lc app=leetcode.cn id=2027 lang=javascript
*
* [2027] 转换字符串的最少操作次数
*/

// @lc code=start
/**
* @param {string} s
* @return {number}
*/
var minimumMoves = function (s) {
let count = 0;
for (let i = 0; i < s.length; ) {
const element = s[i];
if (element === "X") {
count++;
i += 3;
} else {
i++;
}
}
return count;
};
// @lc code=end