码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode:Length of Last Word

时间:2015-08-07 17:57:08      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

 

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 }

 

LeetCode:Length of Last Word

标签:

原文地址:http://www.cnblogs.com/xiaoying1245970347/p/4711285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!