给定一个由大小写字母和空格符 ' ' 组成的字符串,返回该字符串中最后一个单词的长度。
如果不存在最后一个单词,则返回0。
注意:一个单词定义为一个由非空格符组成的字符序列。
例如,给定 s = "Hello World",返回 5。
思路:从后往前扫描字符串,设当前字符位置为i,记录下遇到的第一个非空格符的位置为end,表示最后一个单词的结束位置,如果已经到达字符串的起始位置或者下一个字符是空格符,则返回 end-i-1,否则扫描下一个字符。
public class Solution {
public static int lengthOfLastWord(String s) {
if (s == null || s.length() == 0) {
return 0;
}
int end = -1;
for (int i = s.length() - 1; i >= 0; i--) {
if (s.charAt(i) == ' ') {
continue;
}
if (end == -1) {
end = i;
}
if (i == 0 || s.charAt(i - 1) == ' ') {
return end - i + 1;
}
}
return 0;
}
}