58. 最后一个单词的长度

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);

    }

};