58. 最後一個單詞的長度
阿新 • • 發佈:2020-08-26
58. 最後一個單詞的長度
難度簡單給定一個僅包含大小寫字母和空格' '
的字串s
,返回其最後一個單詞的長度。如果字串從左向右滾動顯示,那麼最後一個單詞就是最後出現的單詞。
如果不存在最後一個單詞,請返回 0。
說明:一個單詞是指僅由字母組成、不包含任何空格字元的最大子字串。
示例:
輸入: "Hello World" 輸出: 5通過次數118,587 提交次數352,554
畫解演算法:58. 最後一個單詞的長度
畫手大鵬釋出於2019-06-2732.7k精選JavaJavaScript字串思路
- 標籤:字串遍歷
- 從字串末尾開始向前遍歷,其中主要有兩種情況
- 第一種情況,以字串
"Hello World"
為例,從後向前遍歷直到遍歷到頭或者遇到空格為止,即為最後一個單詞"World"
的長度5
- 第二種情況,以字串
"Hello World "
為例,需要先將末尾的空格過濾掉,再進行第一種情況的操作,即認為最後一個單詞為"World"
,長度為5
- 所以完整過程為先從後過濾掉空格找到單詞尾部,再從尾部向前遍歷,找到單詞頭部,最後兩者相減,即為單詞的長度
- 時間複雜度:O(n),
n
為結尾空格和結尾單詞總體長度
程式碼
class Solution {
public int lengthOfLastWord(String s) {
int end = s.length() - 1;
while(end >= 0 && s.charAt(end) == ' ') end--;
if(end < 0) return 0;
int start = end;
while(start >= 0 && s.charAt(start) != ' ') start--;
return end - start;
}
}