[leetcode]58.最后一个单词的长度

给你一个字符串 s,由若干单词组成,单词之间用单个或多个连续的空格字符隔开。返回字符串中最后一个单词的长度。如果不存在最后一个单词,请返回 0 。

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

示例 1:

输入:s = "Hello World"
输出:5

示例 2:

输入:s = " "
输出:0

提示:

1 <= s.length <= 104
s 仅有英文字母和空格 ' ' 组成

思路:
从右向左遍历,从第一个不是空格的字符开始计数,一旦开始计数,再次遇到空格的时候停止计数,返回。

AC代码:(C++)

class Solution {
   public:
    int lengthOfLastWord(string s) {
        if (s.size() == 0) {
            return 0;
        }
        int count = 0, len = s.size();
        for (int i = len - 1; i >= 0; i--) {
            if (count != 0 && s[i] == ' ') {
                //不是第一次遇到空格,退出
                break;
            }
            if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) {
                count++;
            }
        }
        return count;
    }
};

版权声明:本文为weixin_44699689原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。