题目描述
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
.
解题思路
从后往前,从第一个非空格的字符开始,找到第一个空格或者字符串的开头为止。
AC代码
class Solution {
public:
int lengthOfLastWord(string s) {
if (s.empty())
return 0;
int startIdx = s.size() - 1;
// strip the final space
for (; startIdx >= 0; --startIdx) {
if (s[startIdx] != ' ')
break;
}
if (startIdx < 0)
return 0;
for (int i = startIdx; i >= 0; --i) {
if (s[i] == ' ')
return startIdx - i;
}
return startIdx + 1;
}
};