Not Only Algorithm,不仅仅是算法,关注数学、算法、数据结构、程序员笔试面试以及一切涉及计算机编程之美的内容 。。
你的位置:NoAlGo博客 » 题解 » 

Leetcode Length of Last Word

Leetcode algorithms 第 58 题:Length of Last Word。

题目

Given a string s consists of upper/lower-case alphabets and empty space characters ‘ ‘, return the length of last word in the string.

If the last word does not exist, return 0.

Note: A word is defined as a character sequence consists of non-space characters only.

For example, 
Given s = “Hello World”,
return 5.

解答

寻找最后一个单词的长度,可以直接定位出最后一个单词的首尾位置。首先找到整个字符串的末尾位置,然后往前找到第一个不是空白字符的位置,即为最后一个单词的末尾位置,从该位置一直向前,知道到达最开始或者遇到空白字符,则为最后一个单词的开始位置,于是可以得到单词的长度。

注意单词为空的情况。

具体代码如下:

class Solution {
public:
    int lengthOfLastWord(const char *s) {
        if (!s || !*s) return 0;
        
        const char *ed = s; //最后一个单词的末尾
        while (*ed) ed++;
        ed--;
        while (ed != s && isspace(*ed)) ed--;
        
        const char *st = ed;//最后一个单词的开头
        while (st != s && !isspace(*st)) st--;
        
        return *st == ' ' ? ed - st : ed - st + 1;
    }
};
上一篇: 下一篇:

我的博客

NoAlGo头像编程这件小事牵扯到太多的知识,很容易知其然而不知其所以然,但真正了不起的程序员对自己程序的每一个字节都了如指掌,要立足基础理论,努力提升自我的专业修养。

站内搜索

最新评论