HJ1 字符串最后一个单词的长度

170 阅读1分钟

Problem: HJ1 字符串最后一个单词的长度

题目描述

描述

计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

输入描述:

输入一行,代表要计算的字符串,非空,长度小于5000。

输出描述:

输出一个整数,表示输入字符串最后一个单词的长度。

示例1

输入:hello nowcoder
输出:8
说明:最后一个单词为nowcoder,长度为8

解题思路

将字符串以“ ”分割

算法流程

  1. 输入字符串in
  2. 通过split分割得到word数组
  3. 如果word不等于0
  4. 输出最后一个字符串长度

代码


import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] word = in.nextLine().split(" ");
        if(word != null) {
            System.out.print(word[word.length - 1].length());
        }
    }
}

复杂度

  • 时间复杂度:

添加时间复杂度, 示例: O(n)O(n)

  • in.nextLine()方法的时间复杂度为O(n),其中n是输入字符串的长度。
  • split(" ")方法的时间复杂度为O(m),其中m是分割后的字符串数组的长度。
  • word[word.length - 1].length()方法的时间复杂度为O(k),其中k是最后一个单词的长度。
  • 总体的时间复杂度为O(n + m + k)。
  • 空间复杂度:

添加空间复杂度, 示例: O(n)O(n)

  • in.nextLine()方法返回的字符串需要O(n)的额外空间来存储。
  • split(" ")方法返回的字符串数组需要O(m)的额外空间来存储。