[leetcode]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) {
string S = s;
if(S.length() == 0)return 0;
string::reverse_iterator r = S.rend();
int start = 0;
int size = 0;
for (r=S.rbegin();r<S.rend();r++)
{
if(start != 0){
if(isspace(*r))
{
return size;
}else{
size++;
}
}else{
if(!isspace(*r))
{
start = 1;
size++;
}
}
}
if(start == 0)return 0;
return size;
}
};

浙公网安备 33010602011771号