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...