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

描述

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

输入描述:

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

输出描述:

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

示例1

输入:

hello nowcoder

输出:

8

说明:

最后一个单词为nowcoder,长度为8   

题解:

这种题目理论上java都提供方法了,String.substring(String.lastIndexof(" ")+1).length这样就行了,

import java.io.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws Exception{
      BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
      String line=reader.readLine();
      int length=line.substring(line.lastIndexOf(" ")+1).length();
      System.out.println(length);
    }
}

但是这种时间太长了, 用时要16ms

于是,又有了新的思路:

遍历输入的字符值,判断是否换行并且输入的值不包含空格字符,则长度++,否则长度重置为0

import java.io.*;
public class Main {
    public static void main(String[] args) throws Exception {
        InputStream input = System.in;
        int l = 0;
        char i;
        while ('\n' != (i = (char)input.read())) {
            l++;
            if (i == ' ') {
                l = 0;
            }
        }
        System.out.print(l);
    }
}

 快了3ms额,好吧,其实影响不大,如果不是为了刷排名的话,直接上java自带那个的api方法好吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值