讓我們一起啃演算法----最後一個單詞的長度

三斤和他的喵發表於2020-05-25

最後一個單詞的長度(Length-Of-Last-Word)

題幹:

給定一個僅包含大小寫字母和空格 ‘ ‘ 的字串 s,返回其最後一個單詞的長度。如果字串從左向右滾動顯示,那麼最後一個單詞就是最後出現的單詞。
如果不存在最後一個單詞,請返回 0 。
說明:一個單詞是指僅由字母組成、不包含任何空格字元的 最大子字串。
示例:
  輸入: “Hello World”
  輸出: 5

週末總是轉瞬即逝,週一的早上總是讓人打不起精神,所以來一題 簡單的leetcode 活絡活絡思維,新的一週開始啦!

解題思路

題目讓我們查詢字串的最後一個單詞的長度,很自然能想到的切入點:從右向左遍歷字串。

剩下的考點就是:遇到空字串如何處理?我們引入一個變數 result 用於標記最後一個單詞的長度,初始值設定為 0。

從右向左遍歷字串, 如果遇到空字串,判斷 result 是否為 0,如果為 0,則表示目前沒有遇到過單詞,如果 result 不為 0,則表示到了最後一個單詞的左邊界了( 我們是從右向左遍歷的 ),返回 result 即可。仔細體會一下這個過程哦

程式碼實現

GO 程式碼實現

func lengthOfLastWord(s string) int {
    if "" == s {
        return 0
    }
    strLength := len(s)
    result := 0
    for i := strLength - 1; i >= 0; i-- {
        // 遇到空字串
        if ' ' == s[i]  {
            // 如果 result 大於 0,則表示到了最後一個單詞的左邊界,返回結果
            if result >0  {
                break
            } else {
                // 如果 result 為 0,則表示目前為止沒有遇到過單詞,繼續從右向左遍歷
                continue
            }
        }
        result ++


    }
    return result
}

總結

每天進步一點點,加油!
演算法教程專案,每天更新一題,點個 star 支援一下呀
github.com/wx-satellite/learning-a...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

三斤

相關文章