LeetCode - Length of Last Word

原题网址:
https://leetcode.com/problems/length-of-last-word/#/description

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. “Hello” 只有一个单词,并且前面没有空格
  2. ” Hello ” 最后有多个空格
  3. “” 没有任何输入

  因此我们从字符串的最后向前扫描,如果字符串长度为0,输出0;如果字符串末尾是空格,向前扫描并不计数,直到扫描到非空格字符开始计数,同时判断该字符是不是首位字符或者空格字符,若是首位字符或者空格字符则停止扫描,输出最终计数。

class Solution {
public:
    int lengthOfLastWord(string s) {
        int len = s.length();
        int count = 0;
        if(s=="") return 0;
        while(s[len-1]==' ')
        {
            len -= 1;
            if(len==0) return 0;
        }
        while(len!=0)
        {   
            if(s[len-1]==' ') break;
            len -= 1;
            count+=1;
        } 
        return count;
    }
};

转载请附上本文链接:
http://blog.csdn.net/marywbrown/article/details/69055360

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值