58 Length of Last Word

Given a string s consisting of words and spaces, return the length of the last word in the string.

A word is a maximal substring consisting of non-space characters only.

Example 1:

Input: s = "Hello World"
Output:
 5
Explanation:
 The last word is "World" with length 5.

Example 2:

Input: s = "   fly me   to   the moon  "
Output:
 4
Explanation:
 The last word is "moon" with length 4.

Example 3:

Input: s = "luffy is still joyboy"
Output:
 6
Explanation:
 The last word is "joyboy" with length 6.

Constraints:

  • 1 <= s.length <= 104

  • s consists of only English letters and spaces ' '.

  • There will be at least one word in s.

这题,就做来恢复一下信心。其实我这里用了S:O(N),如果用chatAt()可以O(1)。

public int lengthOfLastWord(String s) {
    if (s == null || s.length() == 0) {
        return 0;
    }
    
    char[] cs = s.toCharArray();
    int result = 0;
    boolean foundWord = false;
    for (int i = cs.length - 1; i >= 0; i--) {
        char curChar = cs[i];
        if (curChar == ' ') {
            if (!foundWord) {
                continue;
            } else {
                return result;    
            }                
        } else {
            foundWord = true;
            result++;
        }
    }
    
    return result;
}   

Last updated