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.

解法一:STL

1 class Solution {
2 public:
3     int lengthOfLastWord(string s) {
4         //STL
5         auto first=find_if(s.rbegin(),s.rend(),::isalpha);
6         auto last=find_if_not(first,s.rend(),::isalpha);
7         return distance(first,last);
8     }
9 };

解法二:

class Solution {
public:
    int lengthOfLastWord(string s) {
        //从后往前扫描
        
        int len=s.size();
        //去掉后缀空格
        
        while(s[len-1]==' ')
            len--;
        
        int sum=0;
        
        for(int i=len-1;i>=0;i--)
        {
            if(s[i]!=' ')
                sum++;
            else 
                break;
        }
        return sum;
        
    }
};

解法三:顺序扫描

 1 int lengthOfLastWord(char* s) {
 2     int len=0;
 3     while(*s)
 4     {
 5         if(*s++!=' ')
 6             len++;
 7         else if(*s&&*s!=' ')
 8             len=0;
 9     }
10     return len;
11 }

 

posted @ 2015-08-07 16:50  尾巴草  阅读(180)  评论(0编辑  收藏  举报