最后一个单词的长度-要非常小心的一道水题

题目是这样的:

给定由大写,小写字母和空格组成的字符串,返回 最后 一个单词的长度。

如果输入中不存在单词,返回 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);
}
}

注意找出两段代码之间的区别,然后慢慢领会。

posted @ 2018-05-19 11:00  给我一个团队,干翻TX  阅读(117)  评论(0编辑  收藏  举报