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

  

原文地址:https://www.cnblogs.com/zhutianpeng/p/4235014.html