掘金团队号上线,助你 Offer 临门! 点击 查看详情
题目描述:
给你一个字符串 s,由若干单词组成,单词之间用空格隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例一
输入:s = "Hello World"
输出:5
示例二
输入:s = " "
输出:0
提示
- 1 <= s.length <=
s仅有英文字母和空格' '组成
思路分析
要找最后一个单词,从后面往前找即可,考虑到末尾可能有空格,先找到最后一个非空格,然后再从当前位置往前找第一个空格,找不到则说明往前皆为一个单词,如"Hello " ,"Hello"; 找到则说明此位置开始到刚刚找到的最后一个字母为最后一个单词,如"Hello world"。
AC代码
class Solution {
fun lengthOfLastWord(s: String): Int {
var tail = s.length - 1
while (tail >= 0 && s[tail] == ' ') {
tail--
}
var head = tail
while (head >= 0 && s[head] != ' ') {
head--
}
return tail - head
}
}
总结
这题是“真正”的easy题。
再接再厉。