字符串最后一个单词的长度

字符串最后一个单词的长度

http://www.nowcoder.com/questionTerminal/dae459428862446daf49b75d26d7523d

基本思路:遍历字符串,用start指针指向单词开头,end指针指向单词结尾,如果有单词,end-start+1即为最后一个单词的长度。

代码如下:

//
// Created by jt on 2020/9/29.
//
class Solution {
public:
    int lengthOfLastWord(const char *s) {
        if (!s) return 0;
        // 找到最后一个空格
        const char *p = s, *start = nullptr, *end = nullptr;
        while (*p) {
            // 如果当前位置非空格且当前位置为起始位置,或当前位置非空格且前面位置为空格,保存单词的头指针
            if ((*p != ' ' && p == s ) || (*p != ' ' && *(p-1) == ' ')) start = p;
            // 如果当前位置非空格,后面位置为结尾或空格,保存单词的尾指针
            if (*p != ' ' && (*(p+1) == '\0' || *(p+1) == ' ')) end = p;
            ++p;
        }
        if (start == nullptr || end == nullptr) return 0;
        else return end - start + 1;
    }
};
刷遍天下无敌手 文章被收录于专栏

秋招刷题历程

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务