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
.
//采用双指针的思想,两个指针的间隔距离就是last word的长度
public class Solution {
public int lengthOfLastWord(String s) {
if(s==null || s.length()==0){ //不存在last word
return 0;
}
int tailPointer = s.length()-1; //尾指针
while(tailPointer>=0 && s.charAt(tailPointer)==' '){ //从后向前过滤掉所有空格
tailPointer--;
}
//注意,此处是可能为-1的,但是Java采用不完全计算来求bool值的,因而下面的while中
//s.charAt(headPointer)不会出现index溢出的情况,且return (-1)-(-1)=0
int headPointer = tailPointer;
while(headPointer>=0 && s.charAt(headPointer)!=' '){ //从后向前找到第一个空格
headPointer--;
}
return (tailPointer - headPointer);
}
}