Problem: HJ1 字符串最后一个单词的长度
题目描述
描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)
输入描述:
输入一行,代表要计算的字符串,非空,长度小于5000。
输出描述:
输出一个整数,表示输入字符串最后一个单词的长度。
示例1
输入:
hello nowcoder
输出:8
说明:最后一个单词为nowcoder,长度为8
解题思路
将字符串以“ ”分割
算法流程
- 输入字符串in
- 通过split分割得到word数组
- 如果word不等于0
- 输出最后一个字符串长度
代码
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());
}
}
}
复杂度
- 时间复杂度:
添加时间复杂度, 示例:
- in.nextLine()方法的时间复杂度为O(n),其中n是输入字符串的长度。
- split(" ")方法的时间复杂度为O(m),其中m是分割后的字符串数组的长度。
- word[word.length - 1].length()方法的时间复杂度为O(k),其中k是最后一个单词的长度。
- 总体的时间复杂度为O(n + m + k)。
- 空间复杂度:
添加空间复杂度, 示例:
in.nextLine()方法返回的字符串需要O(n)的额外空间来存储。split(" ")方法返回的字符串数组需要O(m)的额外空间来存储。