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

leetcode || 58、Length of Last Word

时间:2015-04-01 17:37:54      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:leetcode   string   算法   

problem:

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.

Hide Tags
 String
题意:给一个字符串,包含大小写的字母和空格,求最后一次出现的不包含空格的字符串的长度

thinking:

(1)充分理解题意是解这道题的关键。对于一些特殊情况: char *s=‘abc "  (最后一个是空格),   char  *s = "a   b     "(连续空格)要注意到

(2)刚开始考虑使用 指针之差 来计算字符串的长度,发现掉入了一个无底深渊,各种特殊情况都要考虑在内,能解出来,但是比较绕

(3)采用 计数法  来解这道题最简单高效,遇到连续的非空格字符串开始计数,遇到空格保存计数结果,也有一些细节要注意,在代码中有注释

(4)这道题考擦的是 分析问题的全面性 和 细节处理能力

code:

class Solution {
public:
    int lengthOfLastWord(const char *s) {
        int i=0;
        int count=0;
        int length=0;
        while(*(s+i)!='\0')
        {
            if(*(s+i)!=' ')
                count++;
            else
            {
                if(count>0) //出现连续空格时,防止清空上次有效计数结果
                    length=count;
                count=0;
            }
            i++;
        }
        if(count!=0) //善后处理:以非空格结束的字符串
            return count;
        else
            return length; //以空格结束

    }
};

 

leetcode || 58、Length of Last Word

标签:leetcode   string   算法   

原文地址:http://blog.csdn.net/hustyangju/article/details/44809441

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