No.58 Length of Last Word

No.58 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.

思路:从后向前遍历字符串,先过滤掉空格,直到遇到空格停止。

 1 class Solution
 2 {
 3 public:
 4     int lengthOfLastWord(string s)
 5     {//返回s中最后一个单词的长度
 6         if(s.size() == 0)
 7             return 0;
 8 
 9         int end = s.size()-1;
10         while(end >=0 && s[end] == ' ')
11             end--;//过滤掉后面的空格符
12         int i=end;
13         while(i>=0)
14         {//从后向前遍历
15             if(s[i] == ' ')
16                 break;
17             i--;
18         }
19 
20         return end-i;
21     }
22 };
23 int main()
24 {
25     Solution sol;
26     string test[] = {"Hello world","Hello world   ","","  "};
27     
28     for(auto const &i : test)
29         cout << sol.lengthOfLastWord(i)<<endl;
30     return 0;
31 }

 

posted @ 2015-06-02 16:00  人生不酱油  阅读(157)  评论(0)    收藏  举报