基本思路:遍历字符串,用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; } };