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

58. Length of Last Word

时间:2016-06-12 10:47:42      阅读:165      评论: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.

链接: http://leetcode.com/problems/length-of-last-word/

一刷,还是有粗心错误。从后向前遍历,初始化in_word为False,之后如果不为空则count += 1,如果为空则继续往前直到查找到第一个非空的字母。再向前查找空字符,找到或者循环结束时返回。

class Solution(object):
    def lengthOfLastWord(self, s):
        """
        :type s: str
        :rtype: int
        """
        in_word = False
        count = 0
        for rev_idx in range(len(s), 0, -1):
            val = s[rev_idx - 1]
            if not in_word and val ==  :
                continue
            elif in_word and val ==  :
                return count
            elif val !=  :
                in_word = True
                count += 1
        else:
            return count if in_word else 0

参考别人代码简化:in_word和count是否为0是一个状态,可省略一个。

class Solution(object):
    def lengthOfLastWord(self, s):
        """
        :type s: str
        :rtype: int
        """
        count = 0
        for rev_idx in range(len(s), 0, -1):
            val = s[rev_idx - 1]
            if val ==  :
                if not count:
                    continue
                else:
                    break
            else:
                count += 1
        return count

 

58. Length of Last Word

标签:

原文地址:http://www.cnblogs.com/panini/p/5576790.html

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