LeetCode0058-最後一個單詞的長度
阿新 • • 發佈:2020-12-21
技術標籤:LeetCode字串leetcodejava最後一個單詞的長度
LeetCode0058-最後一個單詞的長度
題目:
給定一個僅包含大小寫字母和空格 ’ ’ 的字串 s,返回其最後一個單詞的長度。如果字串從左向右滾動顯示,那麼最後一個單詞就是最後出現的單詞。
如果不存在最後一個單詞,請返回 0 。
說明:一個單詞是指僅由字母組成、不包含任何空格字元的 最大子字串。
示例:
輸入: "Hello World"
輸出: 5
程式碼:
/**
* 0058-最後一個單詞的長度
* 給定一個僅包含大小寫字母和空格 ' ' 的字串 s,返回其最後一個單詞的長度。如果字串從左向右滾動顯示,那麼最後一個單詞就是最後出現的單詞。
* <p>
* 如果不存在最後一個單詞,請返回 0 。
* <p>
* 說明:一個單詞是指僅由字母組成、不包含任何空格字元的 最大子字串。
* <p>
* 示例:
* <p>
* 輸入: "Hello World"
* 輸出: 5
*/
/**
* 思路:
* 從字串末尾開始向前遍歷,其中主要有倆種情況
* 第一種,以字串"hello World" 為例,從後向前遍歷直到遍歷到頭或者遇到空為止,
* 即為最後一個單詞"world"的長度為5
* 第二種,以字串"hello world "為例,需要先過濾掉末尾的空格,再進行第一種
*/
class Solution {
public int lengthOfLastWord(String s) {
int end = s.length() - 1;
while (end >= 0 && s.charAt(end) == ' ') {
end--;
}
// 如果後位置索引小於0,表示沒有符合要求的單詞,直接返回0
if (end < 0) {
return 0;
}
int start = end;
while (start >= 0 && s.charAt(start) != ' ') {
start--;
}
return end - start;
}
}
/**
* 測試
*/
public class Study0058 {
public static void main(String[] args) {
System.out.println(new Solution().lengthOfLastWord("hello world"));
}
}