Description
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
.
Thinking Process
- This is a trivial question
- Scan from the back of the list, keep a boolean value indicating if the count has start
- End the loop if we see another ' ' after the count has started
Code
public class Solution {
public int lengthOfLastWord(String s) {
int len = 0;
boolean startCounting = false;
for(int i = s.length() - 1; i >=0 ; i--){
if(startCounting){
if(s.charAt(i) == ' ')
return len;
else
len++;
}else{
if(s.charAt(i) == ' ')
continue;
else{
startCounting = true;
len++;
}
}
}
return len;
}
}
Complexity
- O(n) time complexity as the string is scanned once