欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語(yǔ)言leetcode題解953驗(yàn)證外星語(yǔ)詞典示例詳解

 更新時(shí)間:2022年12月28日 11:27:22   作者:劉09k11  
這篇文章主要為大家介紹了Go語(yǔ)言leetcode題解953驗(yàn)證外星語(yǔ)詞典示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

題目描述

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

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

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

示例 1:

輸入:words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"
輸出:true
解釋?zhuān)涸谠撜Z(yǔ)言的字母表中,'h' 位于 'l' 之前,所以單詞序列是按字典序排列的。

示例 2:

輸入:words = ["word","world","row"], order = "worldabcefghijkmnpqstuvxyz"
輸出:false
解釋?zhuān)涸谠撜Z(yǔ)言的字母表中,'d' 位于 'l' 之后,那么 words[0] > words[1],因此單詞序列不是按字典序排列的。

示例 3:

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

提示:

1 <= words.length <= 100

1 <= words[i].length <= 20

order.length == 26

在 words[i] 和 order 中的所有字符都是英文小寫(xiě)字母。

思路分析

  • 哈希表存儲(chǔ)字母和對(duì)應(yīng)的索引,判斷字符串先后關(guān)系的時(shí)候要用到
  • 然后比較兩個(gè)字符串,選較短的長(zhǎng)度來(lái)比較
  • a[i]對(duì)應(yīng)的字典中的索引為indexA;
  • b[i]對(duì)應(yīng)的字典中的索引為indexB;
  • 如果indexA < indexB, 直接返回true;
  • 如果indexA > indexB, 直接返回false;
  • 如果前minLen個(gè)字符都相等的話(huà),最后判斷下字符串的長(zhǎng)度

AC 代碼

class Solution {
public:
    bool compare(string& a, string& b, unordered_map<char, int>& mp) {
        int sizeA = a.size();
        int sizeB = b.size();
        int minLen = sizeA > sizeB ? sizeB : sizeA;
        int same = 0;
        for (int i = 0; i < minLen; i++) {
            if (mp[a[i]] < mp[b[i]]) {
                return true;
            } else if(mp[a[i]] > mp[b[i]]) { 
                return false;
            }else if (mp[a[i]] == mp[b[i]]) {
                same++;
            }
        }
        if (same == minLen) {
            return a.size() < b.size();
        }
        return false;
    }
    bool isAlienSorted(vector<string>& words, string order) {
        unordered_map<char, int> mp;
        for (int i = 0; i < 26; i++) {
            mp[order[i]] = i;
        }
        int size = words.size();
        if (size == 1) {
            return true;
        }
        for (int i = 0; i < (size - 1); i++) {
            if (compare(words[i], words[i+1], mp) == false) {
                return false;
            }
        }
        return true;
    }
};

以上就是Go語(yǔ)言leetcode題解953驗(yàn)證外星語(yǔ)詞典示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Go 驗(yàn)證外星語(yǔ)詞典的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go返回int64類(lèi)型字段超出javascript Number范圍的解決方法

    Go返回int64類(lèi)型字段超出javascript Number范圍的解決方法

    這篇文章主要介紹了Go返回int64類(lèi)型字段超出javascript Number范圍的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 通過(guò)案例簡(jiǎn)單聊聊為什么說(shuō)Go中的字符串是不能被修改的

    通過(guò)案例簡(jiǎn)單聊聊為什么說(shuō)Go中的字符串是不能被修改的

    在接觸Go這么語(yǔ)言,可能你經(jīng)常會(huì)聽(tīng)到這樣一句話(huà),對(duì)于字符串不能修改,可能你很納悶,日常開(kāi)發(fā)中我們對(duì)字符串進(jìn)行修改也是很正常的,為什么又說(shuō)Go中的字符串不能進(jìn)行修改呢,本文就來(lái)通過(guò)實(shí)際案例給大家演示,為什么Go中的字符串不能進(jìn)行修改
    2023-07-07
  • golang?Gorm框架講解

    golang?Gorm框架講解

    gorm是一個(gè)使用Go語(yǔ)言編寫(xiě)的ORM框架,這篇文章主要介紹了golang?Gorm框架,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • go設(shè)置多個(gè)GOPATH的方式

    go設(shè)置多個(gè)GOPATH的方式

    這篇文章主要介紹了go設(shè)置多個(gè)GOPATH的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • Golang共享變量如何解決問(wèn)題

    Golang共享變量如何解決問(wèn)題

    協(xié)程之間的通信只能夠通過(guò)通道。但是我們習(xí)慣于共享變量,而且很多時(shí)候使用共享變量能讓代碼更簡(jiǎn)潔。那么Golang共享變量如何解決問(wèn)題,感興趣的可以了解一下
    2021-12-12
  • Go創(chuàng)建一個(gè)包并使用(導(dǎo)入本地包和注意事項(xiàng))

    Go創(chuàng)建一個(gè)包并使用(導(dǎo)入本地包和注意事項(xiàng))

    有時(shí)候需要自己寫(xiě)一個(gè)包方便多次使用,但是在導(dǎo)入自己寫(xiě)的包時(shí)遇到了問(wèn)題,本文主要介紹了Go創(chuàng)建一個(gè)包并使用(導(dǎo)入本地包和注意事項(xiàng)),感興趣的可以了解一下
    2023-11-11
  • Golang開(kāi)發(fā)命令行之flag包的使用方法

    Golang開(kāi)發(fā)命令行之flag包的使用方法

    這篇文章主要介紹Golang開(kāi)發(fā)命令行及flag包的使用方法,日常命令行操作,相對(duì)應(yīng)的眾多命令行工具是提高生產(chǎn)力的必備工具,本文圍繞該內(nèi)容展開(kāi)話(huà)題,需要的朋友可以參考一下
    2021-10-10
  • Golang極簡(jiǎn)入門(mén)教程(四):編寫(xiě)第一個(gè)項(xiàng)目

    Golang極簡(jiǎn)入門(mén)教程(四):編寫(xiě)第一個(gè)項(xiàng)目

    這篇文章主要介紹了Golang極簡(jiǎn)入門(mén)教程(四):編寫(xiě)第一個(gè)項(xiàng)目,本文講解了workspace、包路徑、第一個(gè)可執(zhí)行命令等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • 深入了解Golang?哈希算法之MD5、SHA-1和SHA-256

    深入了解Golang?哈希算法之MD5、SHA-1和SHA-256

    哈希算法是計(jì)算機(jī)科學(xué)領(lǐng)域中一種重要的技術(shù),它將任意長(zhǎng)度的輸入數(shù)據(jù)映射為固定長(zhǎng)度的哈希值,在本篇文章中,我們將深入探討Golang中的哈希算法,從多個(gè)方面介紹其詳細(xì)內(nèi)容,希望通過(guò)本文的閱讀你將對(duì)?Golang哈希算法有更全面的理解
    2023-05-05
  • Go語(yǔ)言中defer語(yǔ)句的用法

    Go語(yǔ)言中defer語(yǔ)句的用法

    這篇文章介紹了Go語(yǔ)言中defer語(yǔ)句的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07

最新評(píng)論