描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于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方法好吧