題目:
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 }
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 }
2 String[] a = s.split(" ");
3 if(a == null || a.length == 0)
4 return 0;
5
6 return a[a.length-1].length();
7 }