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.
用一个变量计数,遍历字符串,不是空格(是单词)计数器就加1,是空格就把计数器清0。提交后发现有个测试用例没通过。"a ",这中应该是1,而我最后一个空格把值给清零了。如果在计数在发现新单词的时候再清零就没问题了。所以就新建了个bool变量去标记是不是要清空计数,遇到空格时候把标志位置位而不清空,等遇到单词的时候再清空就可以了。
代码如下:
class Solution {
public:
int lengthOfLastWord(string s) {
int c = 0;
int i = 0;
bool reset = false;
while(s[i]!='\0')
{
if(s[i] != ' ')
{
if(reset)
{
reset = false;
c = 0;
}
c++;
}
else
reset = true;
i++;
}
return c;
}
};