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) {
        if (s == NULL) return 0;
        int mlen = 0, len = 0;
        bool inword = false;
        int pos = 0;
        char ch = 0;
        while ((ch = s[pos]) != '\0') {
            if (ch != ' ') {
                if (!inword) inword = true;
                len++;
            } else if (inword) {
                if (len > 0) mlen = len;
                len = 0;
                inword = false;
            }
                pos++;
        }
        if (len > 0) mlen = len;
        return mlen;
    }   
};

水一发,

简化一下:

 

class Solution {
public:
    int lengthOfLastWord(string s) {
        int len = s.size();
        int wlen = 0;
        int pi = len - 1;
        while (pi >= 0 && s[pi] == ' ') {
            pi--;
        }
        while (pi >= 0 && s[pi] != ' ') {
            pi--;
            wlen++;
        }
        return wlen;
    }
};

 

posted @ 2014-05-27 19:54  卖程序的小歪  阅读(220)  评论(0编辑  收藏  举报