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; } };