力扣58 最後乙個單詞的長度(字串遍歷)

2021-10-05 02:36:16 字數 852 閱讀 4689

力扣58. 最後乙個單詞的長度

給定乙個僅包含大小寫字母和空格 ' ' 的字串 s,返回其最後乙個單詞的長度。如果字串從左向右滾動顯示,那麼最後乙個單詞就是最後出現的單詞。

如果不存在最後乙個單詞,請返回 0 。

說明:乙個單詞是指僅由字母組成、不包含任何空格字元的 最大子字串。

示例:輸入: "hello world"

輸出: 5

思路:從右向左遍歷,從第乙個不是空格的字元開始計數,一旦開始計數,再遇到空格就結束了

標籤:字串遍歷

從字串末尾開始向前遍歷,其中主要有兩種情況

第一種情況,以字串"hello world"為例,從後向前遍歷直到遍歷到頭或者遇到空格為止,即為最後乙個單詞"world"的長度5

第二種情況,以字串"hello world "為例,需要先將末尾的空格過濾掉,再進行第一種情況的操作,即認為最後乙個單詞為"world",長度為5

所以完整過程為先從後過濾掉空格找到單詞尾部,再從尾部向前遍歷,找到單詞頭部,最後兩者相減,即為單詞的長度

時間複雜度:o(n),n為結尾空格和結尾單詞總體長度

#include "stdafx.h"

#includeusing namespace std;

class solution

//從後往前計算單詞長度

//記得先寫i >= 0,因為這是先決條件

while (i >= 0 && ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'a' && s[i] <= 'z')))

return len;

}};int main()

力扣 58 最後乙個單詞的長度

題意理解 給定乙個僅包含大小寫字母和空格 的字串 s,返回其最後乙個單詞的長度。如果字串從左向右滾動顯示,那麼最後乙個單詞就是最後出現的單詞。如果不存在最後乙個單詞,請返回 0 說明 乙個單詞是指僅由字母組成 不包含任何空格字元的 最大子字串。問題分析 字串處理,倒遍歷,注意區分第乙個空和結束時的空...

(力扣)第58 最後乙個單詞的長度

題目要求 給你乙個字串 s,由若干單詞組成,單詞之間用空格隔開。返回字串中最後乙個單詞的長度。如果不存在最後乙個單詞,請返回 0 單詞 是指僅由字母組成 不包含任何空格字元的最大子字串。解題思路 題解 class solution def lengthoflastword self,s str in...

58 最後乙個單詞的長度

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