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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值