LeetCode 58. 最后一个单词的长度
题目链接: https://leetcode.cn/problems/length-of-last-word/
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
示例 1:
输入:s = “Hello World”
输出:5
解释:最后一个单词是“World”,长度为5。
题目解法:
class Solution {
public:
int lengthOfLastWord(string s) {
if(s.empty()) return 0;
const int size = s.size();
int count{};
for (size_t i=size; i>0; --i){
// 减一表示去掉字符串最后的一个字符。
if(s[i-1] == ' '){
if(count > 0) break;
count = 0;
}else{
count ++;
}
}
return count;
}
};
题目笔记:
反向遍历,累计长度。但需要注意的是字符串最后有一个隐藏的字符,因此需要-1。本质 '\0’是字符串结束标志,不计入串长,但要占内存空间。这里和一张二值图片中,找一行连续的像素有异曲同工之妙。 即遍历一行的像素,如果满足连续多少个像素,则返回开始像素,结束像素,还有对应的行。