X

曜彤.手记

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

  1. 27. Length of Last Word:

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



评论 | Comments


Loading ...