每日一練(38) 最後乙個單詞的長度

2022-10-09 19:36:10 字數 1199 閱讀 7225

title: 每日一練(38):最後乙個單詞的長度

categories:[劍指offer]

tags:[每日一練]

date: 2022/04/09

給你乙個字串 s,由若干單詞組成,單詞前後用一些空格字元隔開。返回字串中 最後乙個 單詞的長度。

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

示例 1:

輸入:s = "hello world"

輸出:5

解釋:最後乙個單詞是「world」,長度為5。

示例 2:

輸入:s = " fly me to the moon "

輸出:4

解釋:最後乙個單詞是「moon」,長度為4。

示例 3:

輸入:s = "luffy is still joyboy"

輸出:6

解釋:最後乙個單詞是長度為6的「joyboy」。

1 <= s.length <= 104

s 僅有英文本母和空格 ' ' 組成

s 中至少存在乙個單詞

思路分析

定義兩個指標指向字串的末尾,若字串末尾為空格,指標同時前移 i--; j--;

若遇到非空格,那麼固定 j 不動,表示單詞的末尾位置,繼續前移 i ,直到再次遇到空格,或者遍歷完字串;

最後,i 指向的位置是最後乙個單詞開頭的前乙個位置, j - i 即為最後乙個單詞的長度。

int lengthoflastword(string s) 

//此時i,j指向最後乙個單詞的末尾位置

while (i >= 0 && s[i] != ' ')

return j - i; //得到最後乙個單詞的長度

}

思路分析

從最後乙個字母開始繼續反向遍歷字串,直到遇到空格或者到達字串的起始位置。遍歷到的每個字母都是最後乙個單詞中的字母,因此遍歷到的字母數量即為

最後乙個單詞的長度

int lengthoflastword(string s) 

//此時index指向最後乙個字串的的末尾

int wordlength = 0;

while (index >= 0 && s[index] != ' ')

return wordlength;

}

每日演算法 最後乙個單詞的長度

給你乙個字串 s,由若干單詞組成,單詞之間用空格隔開。返回字串中最後乙個單詞的長度。如果不存在最後乙個單詞,請返回 0 單詞是指僅由字母組成 不包含任何空格字元的最大子字串。示例 1 輸入 s hello world 輸出 5示例 2 輸入 s 輸出 01 s.length 104 s 僅有英文本母...

最後乙個單詞的長度

給定由大寫,小寫字母和空格組成的字串,返回最後乙個單詞的長度。如果輸入中不存在單詞,返回 000。注意 單詞 是指不包含空格符號的字串 例如 對於字串 hello world 不帶引號 那麼返回的結果是 555 對於字串 abc abc 不帶引號 那麼返回的結果就是 333。輸入格式 輸入僅一行,為...

最後乙個單詞的長度

給定乙個僅包含大小寫字母和空格 的字串,返回其最後乙個單詞的長度。如果不存在最後乙個單詞,請返回 0 說明 乙個單詞是指由字母組成,但不包含任何空格的字串。示例 輸入 hello world 輸出 5c int lengthoflastword char s while i 0 s i return...