最后一个单词的长度-要非常小心的一道水题
题目是这样的:
给定由大写,小写字母和空格组成的字符串,返回 最后 一个单词的长度。
如果输入中不存在单词,返回 00。
注意:
“单词”是指不包含空格符号的字符串
例如:
对于字符串"hello World"
(不带引号), 那么返回的结果是 55;
对于字符串"abc abc "
(不带引号),那么返回的结果就是 33。
输入格式
输入仅一行,为字符串 ss(长度不超过 1000010000)。
输出格式
输出 ss 中最后一个单词的长度。
样例输入1
Today is a nice day
样例输出1
3
样例输入2
The quick brown fox jumps over the lazy dog
样例输出2
3
思路:模拟吧
代码实现如下:
package cn.longlong.com;
import java.util.Scanner;
public class Main
{
public static String cc;
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
cc = cin.nextLine();
int cnt = 0;
int j = 0;
for(int i = j ; i >= 0 ; i--)
{
if(cc.charAt(i) == ' ')
{
break;
}
else
{
cnt++;
}
}
System.out.print(cnt);
}
}
对了四个测试点,最后一个测试点,找了很久都没有找到。
最后看了看博客,最后一个测试点是:啥也不输入的时候,会出现的情况。
代码如下:
package cn.longlong.com;
import java.util.Scanner;
public class Main
{
public static String cc;
public static void main(String args[])
{
Scanner cin = new Scanner(System.in);
cc = cin.nextLine();
int cnt = 0;
int j = 0;
for(int i = cc.length()-1 ; i >= 0 ; i--)
{
if(cc.charAt(i) != ' ')
{
j = i;
break;
}
}
for(int i = j ; i >= 0 ; i--)
{
if(cc.charAt(i) == ' ')
{
break;
}
else
{
cnt++;
}
}
System.out.print(cnt);
}
}
注意找出两段代码之间的区别,然后慢慢领会。