最後一個單詞的長度(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 協議》,轉載必須註明作者和本文連結