leetcode|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.

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;
             
        }      
};


猜你喜欢

转载自blog.csdn.net/darlingwood2013/article/details/80010635