若想得到你从未拥有的东西,你得愿意做你从未做过的事。

题目描述:

最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。

单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

解题代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
public:
int lengthOfLastWord(string s) {
int len = s.length();
int ans = 0;
int i;
for(i = len - 1; i >= 0; i--){
if(s[i] == ' '){
continue;
}else{
break;
}
}
for(i;i >= 0; i--){
if(s[i] == ' '){
break;
}else{
ans++;
}
}
return ans;
}
};

image-20231021162646271

解读与收获:

简单题,过于简单了。通过观察给出的测试用例,发现存在以空格结尾的字符串,所以单纯从后往前遍历字符串,碰到空格就停止是无法实现的,所以先用了一个循环,记录第一个字母的位置,从此位置开始再进行依次循环,碰到空格就停止。