在 Python 中查詢大於目標的最小字母
假設我們有一個已排序的字元字母列表。僅包含小寫字母,現在我們有一個目標字母 t,我們必須找到列表中大於給定目標的最小元素。
字母也會迴圈。因此,如果目標是 t = 'z',字母 = ['a', 'b'],則答案為 'a'。
所以,如果輸入類似於 ["c", "f", "j"], t = 'a',則輸出將是 'c'。
為解決此問題,我們將遵循以下步驟 -
- l := 0
- r := letters 的大小 - 1
- while l <= r, 執行
- mid :=(l + r) / 2 為整數
- if letters[mid] > target, 則
- r := mid -1
- 否則,
- l := mid + 1
- 返回 letters[l mod letters 的大小]
讓我們看看以下實現以更好地理解 -
示例
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
廣告