LintCode 最后一个单词的长度题目分析代码

题目

给定一个字符串, 包含大小写字母、空格' ' ,请返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。

样例 给定 s = "Hello World",返回 5。

分析

两种方法,一个顺着找,一个倒着找。

代码

public class Solution {
    /**
     * @param s A string
     * @return the length of last word
     */
    public int lengthOfLastWord(String s) {
        // Write your code here
                int tLen = 0;  
        //int maxLen = 0;
        char[] sc = s.toCharArray();
        int lastLen = 0;  
        for (int i = 0; i < sc.length; i++)  
        {  
            if (sc[i] != ' ')  
            {  
                tLen++;  
                /*if (tLen > maxLen) 
                { 
                    maxLen = tLen; 
                }*/  
            } else  
            {  
                lastLen = tLen;  
                tLen = 0;  
            }  
        }  
        if (tLen != 0)  
        {  
            lastLen = tLen;  
        }  
        return lastLen;  
    }
}
public class Solution {
    /**
     * @param s A string
     * @return the length of last word
     */
    public int lengthOfLastWord(String s) {
        // Write your code here
                int tLen = 0;  
        //int maxLen = 0;
        int length = 0;
        char[] chars = s.toCharArray();
        for (int i = s.length() - 1; i >= 0; i--) {
            if (length == 0) {
                if (chars[i] == ' ') {
                    continue;
                } else {
                    length++;
                }
            } else {
                if (chars[i] == ' ') {
                    break;
                } else {
                    length++;
                }
            }
        }

        return length; 
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏cs

c++一些问题2.0 友元函数,运算符的重载

---- 友元类:打破了类的封装。 a普通类声明为友元函数. 友元函数可以访问类中的私有成员,打破了类的封装。 b友元成员函数。一个类的成员函数是另一个...

2905
来自专栏格子的个人博客

Java源码阅读之LinkedList - JDK1.8

前文基于缓冲数组的ArrayList已经分析过,那么同样作为List实现的LinkedList又有什么不一样呢?

1002
来自专栏追不上乌龟的兔子

Python中最快的格式化字符串方式

第一种是传承自C语言printf函数的使用%占位符格式化字符串,如'%d' % 100,这种方式严格来说是使用%作为算数运算符进行的二元运算,而且有一个限制是只...

1084
来自专栏LanceToBigData

Java集合源码分析(二)Linkedlist

前言   前面一篇我们分析了ArrayList的源码,这一篇分享的是LinkedList。我们都知道它的底层是由链表实现的,所以我们要明白什么是链表? 一、Li...

2767
来自专栏Java爬坑系列

【Java入门提高篇】Day27 Java容器类详解(九)LinkedList详解

  这次介绍一下List接口的另一个践行者——LinkedList,这是一位集诸多技能于一身的List接口践行者,可谓十八般武艺,样样精通,栈、队列、双端队列、...

913
来自专栏吾爱乐享

java之学习集合迭代listiterator的用法及注意事项

1273
来自专栏java初学

java — 值传递和引用传递

3919
来自专栏武培轩的专栏

剑指Offer-不用加减乘除做加法

package Other; /** * 不用加减乘除做加法 * 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 * 思...

2625
来自专栏尾尾部落

[剑指offer] 栈的压入、弹出序列 [剑指offer] 栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序...

1022
来自专栏计算机视觉与深度学习基础

Leetcode 224. Basic Calculator

Implement a basic calculator to evaluate a simple expression string. The expre...

2367

扫码关注云+社区

领取腾讯云代金券