首页 > 其他 > 详细

[LeetCode] Length of Last Word

时间:2014-10-24 00:11:12      阅读:317      评论:0      收藏:0      [点我收藏+]

今天又舔着脸开始LeetCode的征程了,本来是写在CSDN的,无奈遇上他家博客老是在升级中。。。

题目:

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.

Tag:

char, how to loop over char: how to tell the end, how to access, how to get next

体会:

代码基本是来源于看的别的大牛写的代码。我觉得这里主要是用了两个指针的那种思想,就是让一个人先走去探路,发现是‘ ’ 了,然后就变成0,为接下来遇到的新词要准备;如果遇到的不是‘ ’ ,那就是还是原先的那个词,那么就继续词长加1。然后再根据这个指针的情况去调整后面的那个指针,如果前面指针变成0了,说明这个词结束,那后面指针现在的长度就是当前最后一个词的长度了,留住它,如果前面之前没有变成0,说明词的长度还在增加,那么这个指针也跟着更新长度。

 

 1 class Solution {
 2     public:
 3          int lengthOfLastWord(const char *s) {
 4             int count = 0;
 5             int size = 0;
 6             while ( *s != \0 ) {
 7                 // if it is ‘ ‘ , then reset count, else count++
 8                 count = ( *s ==   ) ? 0 : (count + 1);
 9                 // if count == 0, meet ‘ ‘, keep last, else update last
10                 size = (count > 0) ? count : size;
11                 s++;
12             }
13             return size;
14         }
15 };

 

Variant:

我觉得这个题的变形可以有这么几种,求char中最长的那个长度,求最短的那个的长度。比如求这个最长的

class Solution {
    public: 
        int lengthOfLongestWord(const char *s) {
            int count = 0;
            int last = 0;
            int longest = 0;
            while ( *s != \0 ) {
                // if it is ‘ ‘ , then reset count, else count++
                count = ( *s ==   ) ? 0 : (count + 1);
                // if count == 0, meet ‘ ‘, keep last, else update last
                last = (count > 0) ? count : last;
                longest = (longest < last) ? last : longest;
                s++;
            }
            return longest;
        }
};

 Variant 2:

还有一种可能的变形就是,另外给定一个长度,求出其中长度等于这个给定长度的个数,也很类似的

[LeetCode] Length of Last Word

原文:http://www.cnblogs.com/stevencooks/p/4047145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!