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

[LeetCode]58. Length of Last Word

时间:2016-10-03 00:38:01      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:code   leet   

58. 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.


题意:

根据给定的字符串(包括大小写的字母和空格),返回最后一个单词的长度。如果最后一个单词不存在,返回零。(自己加:如果最后的一个是空格,返回前一个单词长度即可)


解题:

1)如果字符串为空,返回零。

2)获取字符串的长度,开始逐个读取字符串。如果碰到的是字母,那么size加一,登记单词长度;如果碰到是空格,置size为零,代表新单词重新开始计数。

3)如果最后一个为空格,那个置size为零前保留值在prev中。只有在size不为零的情况下才会把size保留在prev中,否则出现连续两个空格的情况,会把prev置为零的。


int lengthOfLastWord(char* s) 
{
    if ( !s )
    {   
        return 0;
    }
    
    int len = strlen( s );
    
    int cnt = 0;
    int size = 0;
    int prev = 0;
    for ( cnt = 0; cnt < len; cnt++ )
    {   
        if ( *( s + cnt ) == ‘ ‘ )
        {   
            if ( size )
            {   
                prev = size;
            }   
            size = 0;
        }   
        else
        {   
            size += 1;
        }   
    }
    
    return size == 0 ? prev : size;
}


[LeetCode]58. Length of Last Word

标签:code   leet   

原文地址:http://11998200.blog.51cto.com/11988200/1858443

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