面向API编程与真正实现算法

2021-10-22  本文已影响0人  拜仁的月饼

今天看到一道有趣的题目:58. 最后一个单词的长度 - 力扣(LeetCode) (leetcode-cn.com)。手痒,然后开刷。

其实此题很简单。

1. 面向API编程

JavaScript实现:

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function(s) {
    let sList = s.trim().split(' ')
    return sList[sList.length - 1].length;
};
运算结果

Python实现就更简单了。一行代码即可搞定:

class Solution:
    def lengthOfLastWord(self, s: str) -> int:
        return len(s.strip().split()[-1])

2. 算法编程

但如果没有充分的API让你用呢?于是我用了C++来实现了一个算法版的:

class Solution { 
    public: 
        int lengthOfLastWord(string s) { 
            const int SIZE = s.size(); 
            int res = 0; 
            bool isLastBlank = false;
            bool canAdd = true; 
            if(s[SIZE - 1] == ' ') 
                isLastBlank = true; 
                canAdd = false; 
            for(int i = SIZE - 1; i > -1; --i) 
            { 
                if(s[i] == ' ') 
                {
                    if(isLastBlank) 
                        continue; 
                    else 
                        break; 
                } 
                if(! canAdd)
                { 
                    canAdd = true; 
                    isLastBlank = false; 
                } 
                    res++; 
            } 
            return res; 
        } 
};
上一篇 下一篇

猜你喜欢

热点阅读