问题描述:
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;
}
};