LeetCode 58 最后一个单词的长度

发布时间 2023-10-09 09:44:55作者: gao79138

LeetCode 58 最后一个单词的长度

1. 题目地址

https://leetcode.cn/problems/length-of-last-word/description/?envType=study-plan-v2&envId=top-interview-150

2. 题解

    这道题由于要求最后一个单词的长度,因此我们可以从后往前遍历。在遍历的时候统计字符的个数即可。遇到空格中止。
    但是需要注意:由于会出现类似于:"   fly me   to   the moon  "的字符串。因此,我们从后往前遍历的时候需要处理空格的问题。具体策略如下:
        1.  如果当前为空格,且flag = false,那么就跳过当前元素,继续往前遍历。其中,flag代表是否遍历到了字母。
        2.  如果当前为空格,且flag = true,  那么直接退出循环,直接输出长度即可。
        3.  如果当前不是空格,那么将flag = true(代表遍历到了字母),将统计的字符个数+1,继续向前遍历即可。

3. 代码

class Solution {
public:
    int lengthOfLastWord(string s) {
        int count = 0;
        bool flag = false;
        for(int i = s.size() - 1; i >= 0; i --){
            if(s[i] == ' ' && flag == false){
                continue;
            }
            if(s[i] == ' ' && flag == true){
                break;
            }
            if(s[i] != ' '){
                flag = true;
                count++;
                if(i == 0){
                    break;
                }
            }
        }
        return count;
    }
};