Problem: 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.
Analysis:
There are two ways to solve the problem. First one is using the Java built in String method split. Quite a cheating way to do it.
public class Solution {
public int lengthOfLastWord(String s) {
String[] S = s.split(" ");
if (S.length == 0) return 0;
else return S[S.length-1].length();
}
}
Second way is to use a counter like a ‘normal person’.
public class Solution {
public int lengthOfLastWord(String s) {
if (s == null || s.length() == 0 || (s.length() == 1 && s.charAt(0) == ' ')) return 0;
int right = s.length() - 1;
int len = 0;
while (right >= 0 && s.charAt(right) == ' ') {
right --;
}
while (right >= 0 && s.charAt(right) != ' ') {
len++;
right--;
}
return len;
}
}