题目
给你一个字符串 s
,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
题解
思路:直接倒序遍历排除开头空格。
class Solution {
public:
int lengthOfLastWord(string s) {
int count = 0;
if(s.size() == 1) return 1; // 注意特殊情况
for(int i = s.size() - 1; i >= 0; i--){
if(s[i] == ' '){
if(count == 0) continue;
else break;
}
count++;
}
return count;
}
};
按复杂度分析的角度来看实际上特殊情况不影响整体代码的复杂度,但就是会让运行时间快很多。(所以注意考虑特殊情况