58. 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.

用一个变量计数,遍历字符串,不是空格(是单词)计数器就加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;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容