最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

go語言LeetCode題解720詞典中最長的單詞

 更新時(shí)間:2022年12月28日 14:38:50   作者:劉09k11  
這篇文章主要為大家介紹了go語言LeetCode題解720詞典中最長的單詞,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一 描述

720. 詞典中最長的單詞 - 力扣(LeetCode) (leetcode-cn.com)

給出一個(gè)字符串?dāng)?shù)組 words 組成的一本英語詞典。返回 words 中最長的一個(gè)單詞,該單詞是由 words 詞典中其他單詞逐步添加一個(gè)字母組成。

若其中有多個(gè)可行的答案,則返回答案中字典序最小的單詞。若無答案,則返回空字符串。

示例 1:

輸入:words = ["w","wo","wor","worl", "world"]
輸出:"world"
解釋: 單詞"world"可由"w", "wo", "wor", 和 "worl"逐步添加一個(gè)字母組成。

示例 2:

輸入:words = ["a", "banana", "app", "appl", "ap", "apply", "apple"]
輸出:"apple"
解釋:"apply" 和 "apple" 都能由詞典中的單詞組成。但是 "apple" 的字典序小于 "apply" 

提示:

1 <= words.length <= 1000

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

所有輸入的字符串 words[i] 都只包含小寫字母。

二 分析

由于題目要求求解最長單詞且其前綴都存在在words中,由此可以利用一個(gè)hashmap來保存每一個(gè)字串,當(dāng)然也可以采用set來做。然后再遍歷整個(gè)字串容器,對于每個(gè)字串,只要其長度大于或等于max length,那么就需要分別做處理:

word length > max length:

  • 1、先判斷這個(gè)字串是否符合要求,即它的前綴是否都在words里面;
  • 2、如果不符合要求,則忽略;如果符合要求,則保存。
  • 3、更新max length的信息。

word length == max length:

  • 1、先判斷這個(gè)字串是否符合要求,即它的前綴是否都在words里面;
  • 2、如果不符合要求,則忽略;如果符合要求,則保存。
  • 3、比較當(dāng)前兩個(gè)長度相等的字串,選擇字典序小的那個(gè)保存。

三 答案

class Solution {
public:
    string longestWord(vector<string>& words) {
        if( words.size() == 0 ){
            return NULL;
        }
		unordered_map<string, int> hashWord;
		for( auto& hw : words ){
			++hashWord[hw];
		}
		int maxLength = 0;
		string word = "";
		for( auto& w : words ){
			if( maxLength < w.length() ){
				bool cntFlag = false;
				string strW = "";
				for( int i = 0; i < w.length(); ++i ){
					strW += w[i];
					if( !hashWord.count( strW ) ){
						cntFlag = true;
						break;
					}
				}
				if( !cntFlag ){
					word = "";
					word = w;
					maxLength = w.length();
				}
			}else if( maxLength == w.length() ){
				bool cntFlag = false;
				string strW = "";
				for( int i = 0; i < maxLength; ++i ){
					strW += w[i];
					cout << strW << endl;
					if( !hashWord.count( strW ) ){
						cntFlag = true;
						break;
					}
				}
				if( !cntFlag ){
					for( int i = 0; i < maxLength; ++i ){
						if( word[i] < w[i] ){
							break;
						}else if( word[i] > w[i] ){
							word = "";
							word = w;
						}
					}
				}
			}
		}
		return word;
    }
};

四 總結(jié)

此方法比較笨,但也比較容易理解。

以上就是go語言LeetCode題解720詞典中最長的單詞的詳細(xì)內(nèi)容,更多關(guān)于go題解詞典中最長單詞的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • GO語言實(shí)現(xiàn)的端口掃描器分享

    GO語言實(shí)現(xiàn)的端口掃描器分享

    這篇文章主要介紹了GO語言實(shí)現(xiàn)的端口掃描器分享,本文直接給出實(shí)現(xiàn)代碼,代碼中包含大量注釋,需要的朋友可以參考下
    2014-10-10
  • Golang學(xué)習(xí)筆記(三):控制流

    Golang學(xué)習(xí)筆記(三):控制流

    這篇文章主要介紹了Golang學(xué)習(xí)筆記(三):控制流,本文講解了IF、FOR、SWITCH、goto、break、continue等控制流語句的使用實(shí)例,需要的朋友可以參考下
    2015-05-05
  • Golang使用minio替代文件系統(tǒng)的實(shí)戰(zhàn)教程

    Golang使用minio替代文件系統(tǒng)的實(shí)戰(zhàn)教程

    本文討論項(xiàng)目開發(fā)中直接文件系統(tǒng)的限制或不足,接著介紹Minio對象存儲的優(yōu)勢,同時(shí)給出Golang的實(shí)際示例代碼,包括初始化客戶端、讀取minio對象以及設(shè)置過期策略等,需要的朋友可以參考下
    2025-01-01
  • 一文詳解Golang的函數(shù)特性

    一文詳解Golang的函數(shù)特性

    函數(shù)是?Golang?中非常重要的組成部分之一,它們提供了代碼的可重用性和組織性。在本文中,我們將深入了解?Golang?函數(shù)的多個(gè)方面,希望對大家有所幫助
    2023-04-04
  • go mod更新指定的tag的包后,go vendor內(nèi)容未更新問題

    go mod更新指定的tag的包后,go vendor內(nèi)容未更新問題

    這篇文章主要介紹了go mod更新指定的tag的包后,go vendor內(nèi)容未更新問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • go語言編程學(xué)習(xí)實(shí)現(xiàn)圖的廣度與深度優(yōu)先搜索

    go語言編程學(xué)習(xí)實(shí)現(xiàn)圖的廣度與深度優(yōu)先搜索

    這篇文章主要為大家介紹了go語言編程學(xué)習(xí)實(shí)現(xiàn)圖的廣度與深度優(yōu)先搜索示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • Golang程序漏洞檢測器govulncheck的安裝和使用

    Golang程序漏洞檢測器govulncheck的安裝和使用

    govulncheck 是一個(gè)命令行工具,可以幫助 Golang 開發(fā)者快速找到項(xiàng)目代碼和依賴的模塊中的安全漏洞,該工具可以分析源代碼和二進(jìn)制文件,識別代碼中對這些漏洞的任何直接或間接調(diào)用,本文就給大家介紹一下govulncheck安裝和使用,需要的朋友可以參考下
    2023-09-09
  • golang等待觸發(fā)事件的實(shí)例

    golang等待觸發(fā)事件的實(shí)例

    這篇文章主要介紹了golang等待觸發(fā)事件的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 使用golang開發(fā)一個(gè)curl命令行工具

    使用golang開發(fā)一個(gè)curl命令行工具

    這篇文章主要為大家詳細(xì)介紹了如何使用golang開發(fā)一個(gè)簡單的curl命令行工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • go語言開發(fā)中如何優(yōu)雅得關(guān)閉協(xié)程方法

    go語言開發(fā)中如何優(yōu)雅得關(guān)閉協(xié)程方法

    這篇文章主要為大家介紹了go語言開發(fā)中如何優(yōu)雅得關(guān)閉協(xié)程方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05

最新評論

尼勒克县| 肇源县| 峨眉山市| 罗定市| 体育| 乐陵市| 汝城县| 青冈县| 长丰县| 翼城县| 娱乐| 临潭县| 浦县| 正镶白旗| 连江县| 潞城市| 晋州市| 潼关县| 信宜市| 柳河县| 石棉县| 景东| 涡阳县| 弥渡县| 颍上县| 得荣县| 鞍山市| 普兰店市| 邻水| 嘉黎县| 甘泉县| 蒲城县| 西和县| 萨迦县| 象州县| 蒲江县| 米易县| 周口市| 龙口市| 天镇县| 和硕县|