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.
Example
Given s = "Hello World", return 5.
Note
A word is defined as a character sequence consists of non-space characters only.
If split method is allow, then simply use it and find the length of the last non-empty string.
Time: O(N)
Space: O(N)
public class Solution {
public int lengthOfLastWord(String s) {
if (s == null) {
return 0;
}
String[] words = s.split(" ");
int len = 0;
for (int i = words.length - 1; i >= 0; i--) {
len = words[i].length();
if (len > 0) {
break;
}
}
return len;
}
}
Simply scan the string from right to left. Keep increasing the counter when a non-space character is met. If a space is encoutered and the counter is not zero, simply return the result.
Time: O(N)
Space: O(1)
public class Solution {
public int lengthOfLastWord(String s) {
if (s == null) {
return 0;
}
int len = 0;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == ' ') {
if (len > 0) {
break;
}
} else {
len++;
}
}
return len;
}
}