[LeetCode] Length of Last Word 字符串查找

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.

 

Hide Tags
 String
 

    这题比较简单,只是可能前面有空格,后面有空格。- -
算法逻辑:
  1. 排除最后的空格
  2. index 从后往前查第一个空格。
  3. 返回长度。
 1 #include <iostream>
 2 #include <cstring>
 3 using namespace std;
 4 
 5 
 6 class Solution {
 7 public:
 8     int lengthOfLastWord(const char *s) {
 9         int n = strlen(s);
10         if(n <1)    return 0;
11         int idx=n-1;
12         while(idx>=0&&s[idx]==' ')  idx--;
13         n = idx+1;
14         while(idx>=0){
15             if (s[idx]==' ')  break;
16             idx --;
17         }
18 //        if(idx<0)   return 0;
19         return n - idx -1;
20     }
21 };
22 
23 int main()
24 {
25     char s[] = " 12   ";
26     Solution sol;
27     cout<<sol.lengthOfLastWord(s)<<endl;
28     return 0;
29 }
View Code

 

posted @ 2014-12-04 00:21  A_zhu  阅读(221)  评论(0编辑  收藏  举报