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.
Example:
Input: “Hello World”
Output: 5
坑
- 要注意如果输入
"a "
,返回的是1,因为忽略掉" "
后,只剩下"a"
。 - 许多东西Java有内置的函数,比如本题的trim(),lastIndexOf()。
- 判断字符串为空直接用null比较即可。
思路
- 首先排除掉非法情况。
- 去掉尾部的
" "
。 - 从尾部开始计算,直到遇到
" "
的长度。
代码
class Solution {
public int lengthOfLastWord(String s) {
if (s == null || s.length() == 0) {
return 0;
}
s = s.trim();//trim是删除头尾空白字符串
int lastIndex = s.lastIndexOf(' ') + 1; //返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1
return s.length() - lastIndex;
}
}