zoukankan      html  css  js  c++  java
  • 【Length of Last Word】cpp

    题目:

    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.

    代码:

    class Solution {
    public:
        int lengthOfLastWord(string s) {
                for ( int i = s.length()-1; i >=0; --i ) 
                {
                    if (s[i]==' ')
                    {
                        s.erase(s.end()-1);
                    }
                    else
                    {
                        break;
                    }
                }
                const size_t len = s.length();
                int ret = 0;
                for ( size_t i = 0; i < len; ++i )
                {
                    if (s[i]!=' ')
                    {
                        ++ret;
                        continue;
                    }
                    if (s[i]==' ')
                    {
                        ret = 0;
                        continue;
                    }
                }
                return ret;
        }
    };

    tips:

    先把后面的空格都去掉。然后从头遍历,最后留下的ret就是最后一个单词的长度。

    还有STL的一个做法,明天再看。

    ==========================================

    第二次过这道题,感觉不知道第一次为啥还用erease这种了,直接一个指针从后往前遍历就AC了。

    class Solution {
    public:
        int lengthOfLastWord(string s) {
                int i = s.size()-1;
                while ( i>=0 ){
                    if ( s[i]==' ' )
                    {
                        --i;
                    }
                    else
                    {
                        break;
                    }
                }
                int ret = 0;
                while ( i>=0 )
                {
                    if (s[i]!=' ')
                    {
                        ++ret;
                        --i;
                    }
                    else
                    {
                        break;
                    }
                }
                return ret;
        }
    };
  • 相关阅读:
    LVS+KEEPALIVED(2/3)
    LVS+KEEPALIVED(1/3)
    DRF之权限源码详解
    DRF认证之源码详解
    Django REST framework之JWT
    Restful_Framework之插件
    求两个有序数组的中位数,要求时间复杂度log(m+n)
    Django_Restful_Framework视图与路由
    Django_Restful_Framework
    restFul接口设计规范
  • 原文地址:https://www.cnblogs.com/xbf9xbf/p/4496016.html
Copyright © 2011-2022 走看看