最后一个单词的长度
题目链接
题目描述
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = "Hello World"
输出:5示例 2:
输入:s = " fly me to the moon "
输出:4示例 3:
输入:s = "luffy is still joyboy"
输出:6
题目解法
描述:根据题目描述,可以从后往前遍历字符串,如果有空格就先去掉空格,没有空格就遍历到遇到空格为止,这样就得到一个单词的起始位置,用最后的位置减去起始位置就是单词的长度
public static int lengthOfLastWord(String s) {
int end = s.length() - 1;
//从后面往前遍历,先去掉空格
while (end >= 0 && s.charAt(end) == ' ') {
end--;
}
//预防全是空格
if(end < 0) {
return 0;
}
int start = end;
//如果不是空格就减一
while (start >= 0 && s.charAt(start) != ' ') {
start--;
}
//从最后面的数减去最后一个单词的开始位置
return end - start;
}