Problem: 58. 最后一个单词的长度
思路
评价为随便过
字符串去掉前后空格,再从后往前找到最后一个单词,注意:不要越界,判断i >= 0
复杂度
时间复杂度:
添加时间复杂度, 示例: $O(n)$
空间复杂度:
添加空间复杂度, 示例: $O(n)$
Code
[]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| class Solution {
public:
int lengthOfLastWord(string s) {
trim(s);
int i = s.size() - 1;
int j = s.size() - 1;
while (i >= 0 && s[i] != ' ')
i--;
return j - i + 1;
}
void trim(string& s) {
int j = s.size() - 1;
while (s[j] == ' ')
j--;
int i = 0;
while (s[i] == ' ')
i++;
s.substr(i, j - 1 + 1);
s.resize(j - 1 + 1);
}
};
|