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);
}
}
本文介绍了一种使用双指针技术从右向左扫描字符串的方法,以确定最后一个单词的长度。这种方法适用于包含大小写字母和空格的字符串。
1050

被折叠的 条评论
为什么被折叠?



