问题描述:
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.
Example:
Input: "Hello World" Output: 5
解答:
最开始根据example写解答,导致很多其他类型样例不能通过。
为了通过其他样例,不断地添加if,使得程序难以读懂,且仍有不能照顾到的案例。
所以自己尝试写了几种特殊样例,进行观察,得到如下解答。
//运行时间6ms,超过了55.57%的解答 class Solution { public: int lengthOfLastWord(string s) { if(s.size()==0) return 0; string temp=""; string re=""; for(int i=0;i<s.size();++i){ if(s[i]!=' '){ temp+=s[i]; re=temp; } else temp=""; } return re.size(); } };
可以看出这个程序还是存在很多问题。
题目只要求返回length,而我的解答中记录了最后一个word,这是不必要的。
修改很简单,temp和re变为int就可以了:
//运行时间5ms,超过了83.54%的解答 class Solution { public: int lengthOfLastWord(string s) { if(s.size()==0) return 0; int temp=0; int re=0; for(int i=0;i<s.size();++i){ if(s[i]!=' '){ temp++; re=temp; } else temp=0; } return re; } };