953. 驗(yàn)證外星語(yǔ)詞典(Python)

更多精彩內(nèi)容,請(qǐng)關(guān)注【力扣簡(jiǎn)單題】。

題目

難度:★★☆☆☆
類型:字符串

某種外星語(yǔ)也使用英文小寫字母,但可能順序 order 不同。字母表的順序(order)是一些小寫字母的排列。

給定一組用外星語(yǔ)書寫的單詞 words,以及其字母表的順序 order,只有當(dāng)給定的單詞在這種外星語(yǔ)中按字典序排列時(shí),返回 true;否則,返回 false。

提示
1 <= words.length <= 100
1 <= words[i].length <= 20
order.length == 26
在 words[i] 和 order 中的所有字符都是英文小寫字母。

示例

示例 1
輸入:words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"
輸出:true
解釋:在該語(yǔ)言的字母表中,'h' 位于 'l' 之前,所以單詞序列是按字典序排列的。

示例 2
輸入:words = ["word","world","row"], order = "worldabcefghijkmnpqstuvxyz"
輸出:false
解釋:在該語(yǔ)言的字母表中,'d' 位于 'l' 之后,那么 words[0] > words[1],因此單詞序列不是按字典序排列的。

示例 3
輸入:words = ["apple","app"], order = "abcdefghijklmnopqrstuvwxyz"
輸出:false
解釋:當(dāng)前三個(gè)字符 "app" 匹配時(shí),第二個(gè)字符串相對(duì)短一些,然后根據(jù)詞典編纂規(guī)則 "apple" > "app",因?yàn)?'l' > '?',其中 '?' 是空白字符,定義為比任何其他字符都?。ǜ嘈畔ⅲ?/p>

解答

外星語(yǔ)和英語(yǔ)的區(qū)別是,字母表中各個(gè)字母的先后順序不一樣,我們要判斷輸入的單詞列表是否按照外星語(yǔ)的字母順序排列。

如果理解英語(yǔ)單詞按照字典順序排列的規(guī)則,就可以解決這個(gè)問(wèn)題。英語(yǔ)中,單詞的排序根據(jù)相應(yīng)位置字母在字母表中出現(xiàn)的順序進(jìn)行排序,且單詞從左到右優(yōu)先級(jí)遞減。

我們可以對(duì)每個(gè)單詞構(gòu)建一個(gè)索引列表,用來(lái)存儲(chǔ)單詞中各個(gè)字母在字母表中出現(xiàn)的位置,根據(jù)每個(gè)單詞對(duì)應(yīng)的索引列表對(duì)單詞進(jìn)行排序,如果將字母表更換成外星語(yǔ)字母表的順序,既可獲得按照外星語(yǔ)詞典排序的結(jié)果,通過(guò)按照該方法排序的結(jié)果和輸入的單詞列表是否一致可以實(shí)現(xiàn)題目要求的判斷。

這里我們可以使用python中的sort方法,該方法就有key關(guān)鍵字選項(xiàng),我們可以傳進(jìn)一個(gè)函數(shù)作為參數(shù),這樣排序時(shí)就會(huì)首先將每個(gè)元素先送到函數(shù)中,利用函數(shù)的輸出進(jìn)行排序。該函數(shù)實(shí)現(xiàn)的功能就是將單詞轉(zhuǎn)變?yōu)樗饕斜?,用lambda表達(dá)式進(jìn)行定義。

class Solution:
    def isAlienSorted(self, words, order):
        """
        :param words: List[str]
        :param order: str
        :return: bool
        """
        return words == sorted(words, key=lambda w: [order.index(c) for c in w])

如有疑問(wèn)或建議,歡迎評(píng)論區(qū)留言~

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容