1. 程式人生 > 其它 >LeetCode0058-最後一個單詞的長度

LeetCode0058-最後一個單詞的長度

技術標籤: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")); } }

結果:

在這裡插入圖片描述