题目

length-of-last-word


算法

* 直接算法

  • 对字符串预处理:去掉开头和结尾的空格
  • 计数器累计非空格的字符串的长度
  • 遇到空格则计数器清零

* 直接算法的优化

  • 因为是找最后一个字符串的长度
  • 所以从字符串尾部开始,先将尾部的空格去掉,然后开始找非空格的字符的长度

代码

* 直接算法


class Solution{
public:
    int lengthOfLastWord(string s){
        int len=s.size();
        int left=0;
        int right=len-1;
        int count=0;
        while(s[left]=' ')  ++left;
        while (s[right]==' ') --right;
        for(int i=left;i<=right;++i){
            if(s[i]=' ') count=0;
            else ++count;
        }

        return count;
    }
};

* 直接算法的优化


class Solution{
public:
    int lengthOfLastWord(string s){
       int  right=s.size()-1,res=0;
        while(right>=0 && s[right]==' ') --right;
        while(right>=0 && s[right]!=' '){
            --right;
            ++res;
        }

        return res;
    }
};

results matching ""

    No results matching ""