[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) { string S = s; if(S.length() == 0)return 0; string::reverse_iterator r = S.rend(); int start = 0; int size = 0; for (r=S.rbegin();r<S.rend();r++) { if(start != 0){ if(isspace(*r)) { return size; }else{ size++; } }else{ if(!isspace(*r)) { start = 1; size++; } } } if(start == 0)return 0; return size; } };