Question
Formatted question description: https://leetcode.ca/all/58.html
58. Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ' ',
return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = "Hello World",
return 5.
Algorithm
Preprocess the input string first, remove the spaces at the beginning and the end, and then use a counter to accumulate the length of the non-space string, and clear the counter when it encounters a space.
Code
Java
-
public class Length_of_Last_Word { public class Solution_no_extra_space { // one scan public int lengthOfLastWord(String s) { if (s == null || s.length() == 0) { return 0; } int count = 0; for (int i = s.length() - 1; i >= 0; i--) { if (count == 0 && s.charAt(i) != ' ') { // skip spaces count++; } else if (count != 0 && s.charAt(i) == ' ') { break; } else if (('a' <= s.charAt(i) && s.charAt(i) <= 'z') || ('A' <= s.charAt(i) && s.charAt(i) <= 'Z')) { count++; } } return count; } } public class Solution { public int lengthOfLastWord(String s) { if (s == null || s.length() == 0) { return 0; } String[] array = s.split(" "); // @note: if input is string with spaces “ “, the array length is 0 if (array.length == 0) { return 0; } else { return array[array.length - 1].length(); } } } }
-
// OJ: https://leetcode.com/problems/length-of-last-word/ // Time: O(N) // Space: O(1) class Solution { public: int lengthOfLastWord(string s) { int i = s.size() - 1; while (i >= 0 && s[i] == ' ') --i; int j = i; while (i >= 0 && s[i] != ' ') --i; return j - i; } };
-
class Solution(object): def lengthOfLastWord(self, s): """ :type s: str :rtype: int """ if len(s) == 0: return 0 s = s.split() if len(s) > 0: return len(s[-1]) return 0