题目:
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
.
题解:
这道题主要是考虑一下最后是不是空格,方法是倒着找不是空格的字符并计数,如果遇到空格且计数不是0,说明最后一个单词已经被计数了,所以可以返回了。
代码如下:
1 public int lengthOfLastWord(String s) { 2 if (s == null || s.length() == 0) 3 return 0; 4 5 int len = s.length(); 6 int count = 0; 7 for ( int i = len - 1; i >= 0; i--) { 8 if (s.charAt(i) != ' ') { 9 count++; 10 } 11 if(s.charAt(i)==' '&&count != 0){ 12 return count; 13 } 14 } 15 return count; 16 }
当然这道题也能用投机取巧的方法,用split函数把字符串按照空格分隔好,返回最后那个就行。。。
代码如下:
1 public int lengthOfLastWord(String s) { 2 String[] a = s.split(" "); 3 if(a == null || a.length == 0) 4 return 0; 5 6 return a[a.length-1].length(); 7 }