X

曜彤.手记

随手写写,关于互联网技术、产品与创业

LeetCode 每日一题 - 58. Length of Last Word


LeetCode 每日一题系列。本文算法题目:给出一个字符串,该字符串包含大写字母,小写字母以及空格,请编写程序给出最后一个单词(不包含空格,只包含字母)的长度。建议先看原题的链接自己做一下,然后再参考本文给出的分析与解答进行总结。【String】

27. 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.

Example:

Given s = "Hello World", return 5.

0. 题目大意:

给出一个字符串,该字符串包含大写字母,小写字母以及空格,请编写程序给出该字符串最后一个单词(不包含空格,只包含字母)的长度。

1. 基础解法:

基本的思路就是从后往前处理字符串。首先初始化一个长度变量值为0,接下来从后往前寻找整个字符串中第一个不为零的位置,那么这个位置应该就是整个字符串中最后一个 Word 的最后一个字符的位置。接下来继续从后向前寻找,只要当前所处的字符不是 “Space” 符即可将长度变量的值加一,否则直接退出循环,返回现在的长度。代码如下所示:

public static int lengthOfLastWord(String s) {
    if (s.length() == 0) {
        return 0;
    }

    int strLen = s.length();
    int lastWordIndex = 0;
    int lastWordLen = 0;

    for (int i = strLen - 1; i > 0; i--) {
        if (s.charAt(i) != " ") {
            lastWordIndex = i;
            break;
        }
    }

    for (int i = lastWordIndex; i >= 0; i--) {
        if (s.charAt(i) != " ") {
            lastWordLen ++;
        } else {
            break;
        }
    }
    return lastWordLen;
}
59 / 59 test cases passed.
Status: Accepted
Runtime: 5 ms


这是文章底线,下面是评论
  暂无评论,欢迎勾搭 :)