码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode-58. Length of Last Word

时间:2018-03-07 23:54:56      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:length   body   str   逆序   nbsp   log   out   int   use   

一、问题描述

  给定一个字符串s,s是由多个单词组成,单词之间以‘ ’分开,找出最后一个单词的长度。如果没有最后单词则返回0。

二、问题描述

  先找到最后一个单词的末尾,因为s可能以空格结尾,所以从后往前找到第一个不是空格的字符。然后再向前找到该单词的起始位置。

int lengthOfLastWord(string s) {
    if (s.size() == 0) return 0;
    int i = s.size() - 1;
    while (i >= 0 && s[i] ==  )
        i--;
    //逆序来看,此时i为第一个不为‘ ’的字符串
    int endpos = i;
    //i继续向前找,endpos不用变了
    for (; i >= 0; --i)
        if (s[i] ==  )
            return endpos - i;
    if (i == -1)
        return endpos+1;
}

//这是测试用例
int main()
{
    string s = "hello world";
    cout << lengthOfLastWord(s) << endl;

    system("pause");
    return 0;
}

 

LeetCode-58. Length of Last Word

标签:length   body   str   逆序   nbsp   log   out   int   use   

原文地址:https://www.cnblogs.com/likaiming/p/8525398.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!