744. 尋找比目標字母大的最小字母(Python)

題目

難度:★☆☆☆☆
類型:數(shù)組

給定一個只包含小寫字母的有序數(shù)組letters 和一個目標字母 target,尋找有序數(shù)組里面比目標字母大的最小字母。

數(shù)組里字母的順序是循環(huán)的。舉個例子,如果目標字母target = 'z' 并且有序數(shù)組為 letters = ['a', 'b'],則答案返回 'a'。

注意
letters長度范圍在[2, 10000]區(qū)間內。
letters 僅由小寫字母組成,最少包含兩個不同的字母。
目標字母target 是一個小寫字母。

示例

輸入:
letters = ["c", "f", "j"]
target = "a"
輸出: "c"

輸入:
letters = ["c", "f", "j"]
target = "c"
輸出: "f"

輸入:
letters = ["c", "f", "j"]
target = "d"
輸出: "f"

輸入:
letters = ["c", "f", "j"]
target = "g"
輸出: "j"

輸入:
letters = ["c", "f", "j"]
target = "j"
輸出: "c"

輸入:
letters = ["c", "f", "j"]
target = "k"
輸出: "c"

解答

我們可以把目標字符加入到字符數(shù)組中,去重后進行排序,如果目標字符恰好是排序后最后一個元素,那么返回派蘇數(shù)組的第一個字符,否則返回目標字符所在位置的下一個字符即可。

class Solution:
    def nextGreatestLetter(self, letters, target):
        letters = sorted(list(set(letters+[target])))
        return letters[0] if letters[-1] == target else letters[letters.index(target)+1]

很多大佬這道題用二分法查找,筆者認為這是訓練算法技能的一個途徑,不過對于這道題似乎沒有必要,因為對于字母來說也就26個。

如有疑問或建議,歡迎評論區(qū)留言~

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,090評論 0 2
  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,737評論 0 5
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 6,356評論 0 10
  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,692評論 0 4
  • 日本救心丸被廣大網友整理成了去日本必備好藥之一。近年來在朋友圈異?;鸨?,多次掀起了海外搶購熱潮的“神藥”。作...
    柳竹海閱讀 2,832評論 0 0

友情鏈接更多精彩內容