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();
}
}
}
}