在 Python 中查找大于目标的最小字母
pythonserver side programmingprogramming更新于 2023/11/9 23:28:00
假设我们有一个排序字符的字母列表。这只包含小写字母,现在我们有一个目标字母 t,我们必须在列表中找到大于给定目标的最小元素。
字母也会环绕。所以,如果目标是 t = 'z'并且 letters = ['a', 'b'],答案是 'a'。
因此,如果输入为 ["c", "f", "j"], t = 'a',则输出将为 'c'。
为了解决这个问题,我们将遵循以下步骤 −
- l := 0
- r := 字母大小 - 1
- 当 l <= r 时,执行
- mid :=(l + r) / 2 作为整数
- 如果 letters[mid] >目标,则
- r := mid -1
- 否则,
- l := mid + 1
- 返回字母[l mod 字母大小]
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def nextGreatestLetter(self, letters, target): l = 0 r = len(letters) - 1 while l <= r: mid = (l + r)//2 if letters[mid] > target: r = mid -1 else: l = mid + 1 return letters[l % len(letters)] ob = Solution() print(ob.nextGreatestLetter(["c", "f", "j"], "a"))
输入
["c", "f", "j"], "a"
输出
c