基本思路:遍历字符串,用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;
}
};
京公网安备 11010502036488号