zoukankan      html  css  js  c++  java
  • 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.

    链接: 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

    2/12/2017, Java

    错误:

    1. 空格和''没有区分好

    2. 第6行的判断条件应该是start < 0,不是start == 0

    3. 最后返回时候注意没有+1,需要多用例子测试

     1 public class Solution {
     2     public int lengthOfLastWord(String s) {
     3         int start = s.length() - 1;
     4         
     5         while (start >= 0 && s.charAt(start) == ' ') start--;
     6         if (start < 0) return 0;
     7         int end = start;
     8         while (end >= 0 && s.charAt(end) != ' ') end--;
     9         return start - end;
    10     }
    11 }
  • 相关阅读:
    Event-Driven Architecture思考
    Kafka分区分配策略分析——重点:StickyAssignor
    Ubiq:A Scalable and Fault-tolerant Log Processing Infrastructure
    11张PPT介绍Paxos协议
    译《The Part-Time Parliament》——终于读懂了Paxos协议!
    谈谈分布式系统的一致性
    Pulsar Consumer实现介绍
    Pulsar-Producer实现简介
    RocketMQ事务消息实现分析
    Apache Pulsar简介
  • 原文地址:https://www.cnblogs.com/panini/p/5576790.html
Copyright © 2011-2022 走看看