您的位置:首页 > 其它

[LeetCode] Length of Last Word

2014-05-09 17:10 225 查看
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
.

solution 1

class Solution {
public:
    int lengthOfLastWord(const char *s) {
        istringstream in(s);
        string str;
        stack<string> stk;
        while(in >> str)
            stk.push(str);
        return stk.empty() ? 0 : stk.top().size();
    }
};


solution 2

class Solution {
public:
    int lengthOfLastWord(const char *s) {
        int len = 0;
        while(*s)
        {
            if(*s++ != ' ')
                ++len;
            else if(*s && *s != ' ')
                len = 0;
        }
        return len;
    }
};


solution 3

class Solution {
public:
    int lengthOfLastWord(const char *s) {
        string str(s);
        auto first = find_if(str.rbegin(), str.rend(), ::isalpha);
        auto last = find_if_not(first, str.rend(), ::isalpha);
        return distance(first, last);
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: