题目:
Given a string s consists of upper/lower-case alphabets and empty space characters ' '
, return the length of last word in the string.
If the last word does not exist, return 0.
Note: A word is defined as a character sequence consists of non-space characters only.
For example,
Given s = "Hello World"
,
return 5
.
就是输出最后一个单词的字母数。首先这道题看似简单其实不简单,得考虑好几种情况,分别是"a "、" a"、" a "的情况。所以得分别处理这几种情况下,才能够得到正确的结果。因此,针对这题,首先我采用从后往前来一一查找的方法来实现,但是在具体实现的过程中,我发现了一个问题,就是||(或)运算符的问题,因为如果(a || b)中前面那个a成立了,那么后面的那个b就不会去执行了,所以得特别当心。具体代码如下:
public class Solution
{
public static int lengthOfLastWord(String s)
{
int length = s.length();
int leng = 0;
if(length != 0)
{
for(int i = length - 1;i >= 0;i--)
{
if(s.charAt(i) != ' ')
{
//if(s.charAt(i - 1) != ' ')
leng ++;
//System.out.println(i);
if(((i-1) == -1) || s.charAt(i - 1) == ' ' ) //这儿如果是先s.charAt(i - 1) == ' ' || (i - 1) == -1这样可能就直接如果前面那个成立,那么后面那个就不会执行了 {
//leng ++;
break;
}
}
}
}
return leng;
}
public static void main(String args[])
{
System.out.println(lengthOfLastWord("a "));
}
}