在Python中找到大于目标的最小字母

假设我们有一个排序字符字母列表。它仅包含小写字母,现在我们有了目标字母t,我们必须在列表中找到大于给定目标的最小元素。

字母也环绕着。因此,如果目标是t ='z'并且字母= ['a','b'],则答案是'a'。

因此,如果输入类似于[“ c”,“ f”,“ j”],t ='a',则输出将为'c'。

为了解决这个问题,我们将遵循以下步骤-

  • l:= 0

  • r:=字母大小-1

  • 当l <= r时

    • l:=中+ 1

    • r:= -1中

    • 中:=(l + r)/ 2作为整数

    • 如果字母[mid]>目标,则

    • 除此以外,

    • 返回字母[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

    以上是 在Python中找到大于目标的最小字母 的全部内容, 来源链接: utcz.com/z/321769.html

    回到顶部