class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {
}
};
744. 寻找比目标字母大的最小字母
给你一个排序后的字符列表 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
是一个小写字母原站题解
golang 解法, 执行用时: 0 ms, 内存消耗: 2.5 MB, 提交时间: 2022-08-15 10:17:20
func nextGreatestLetter(letters []byte, target byte) byte { if target >= letters[len(letters)-1] { return letters[0] } i := sort.Search(len(letters)-1, func(i int) bool { return letters[i] > target }) return letters[i] }
python3 解法, 执行用时: 44 ms, 内存消耗: 16.9 MB, 提交时间: 2022-08-15 10:16:22
class Solution: def nextGreatestLetter(self, letters: List[str], target: str) -> str: return letters[bisect_right(letters, target)] if target < letters[-1] else letters[0]
python3 解法, 执行用时: 36 ms, 内存消耗: 16.8 MB, 提交时间: 2022-08-15 10:14:59
class Solution: def nextGreatestLetter(self, letters: List[str], target: str) -> str: return next((letter for letter in letters if letter > target), letters[0])
golang 解法, 执行用时: 0 ms, 内存消耗: 2.6 MB, 提交时间: 2021-07-01 10:13:04
func nextGreatestLetter(letters []byte, target byte) byte { for _, letter := range letters { if letter > target { return letter } } return letters[0] }