今天看到一道有趣的题目: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;
}
};
网友评论