zoukankan      html  css  js  c++  java
  • Leecode刷题之旅-C语言/python-58.最后一个单词的长度

    /*
     * @lc app=leetcode.cn id=58 lang=c
     *
     * [58] 最后一个单词的长度
     *
     * https://leetcode-cn.com/problems/length-of-last-word/description/
     *
     * algorithms
     * Easy (28.96%)
     * Total Accepted:    18.8K
     * Total Submissions: 65K
     * Testcase Example:  '"Hello World"'
     *
     * 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
     * 
     * 如果不存在最后一个单词,请返回 0 。
     * 
     * 说明:一个单词是指由字母组成,但不包含任何空格的字符串。
     * 
     * 示例:
     * 
     * 输入: "Hello World"
     * 输出: 5
     * 
     * 
     */
    int lengthOfLastWord(char* s) {
        int count=0;
        for(int i=strlen(s)-1;i>=0;i--){
            if(s[i]!=' ') count++;
            else if(count) break;
        }
        return count;
    }

    这道题的思路是,数组逆序查找,如果当前的值不是空格,就把计数器加一,如果是空格的话就break。

    但是如果这么写的话就考虑不到后面几位是空格的情况。

    所以加了一句 else if(count) break;

    其实就是把多种情况融合成一种,就是当我们的计数器等于一的时候会有两种情况:

    1.这个字符刚刚开始,我们刚统计。 

    2.这个字符只有一个,下一个就是空格,我们就统计完了。

    所以说接下来的判断就是如果有其他的字符的话,就继续计数器加一,没有的话,我们的计数器等于一,意味着下一位是空格,工作结束,直接break返回1即可。

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    python:

    #
    # @lc app=leetcode.cn id=58 lang=python3
    #
    # [58] 最后一个单词的长度
    #
    # https://leetcode-cn.com/problems/length-of-last-word/description/
    #
    # algorithms
    # Easy (28.96%)
    # Total Accepted:    18.8K
    # Total Submissions: 65K
    # Testcase Example:  '"Hello World"'
    #
    # 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
    # 
    # 如果不存在最后一个单词,请返回 0 。
    # 
    # 说明:一个单词是指由字母组成,但不包含任何空格的字符串。
    # 
    # 示例:
    # 
    # 输入: "Hello World"
    # 输出: 5
    # 
    # 
    #
    class Solution:
        def lengthOfLastWord(self, s: str) -> int:
            a = s.split(' ')
            a.reverse()
            for ss in a:
                if ss!='':
                    return len(ss)
            return 0

    python相对来说就很灵活了,先用split,按空格分开,形成一个数组,然后还是逆序(直接用reverse了) 然后在里面找到第一个不等于空格的就返回就可以了。

  • 相关阅读:
    some Rails leanrning:Rails Ajax,Validates,Cycle
    快速排序与挑白菜
    九月开学
    搜索引擎代码资源
    start RubyOnRails
    垂直搜索引擎之我见
    demo下载:ASP.NET GDI+生成动态的Gif动画
    NHibernate和ADO.Net的性能对比相差有多大?
    手工调试自定义控件各主要方法执行顺序(分运行时和设计时)
    ASP.Net中的缓存方案(不仅仅是Cache和Session)(我在CSDN上和别人的争论)
  • 原文地址:https://www.cnblogs.com/lixiaoyao123/p/10509838.html
Copyright © 2011-2022 走看看