算法记录——58 最后一个单词的长度

题目:给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。

粗暴的解法:我把字符串转换成数组之后,取数组的最后一个的长度

/*
 * @lc app=leetcode.cn id=58 lang=javascript
 *
 * [58] 最后一个单词的长度
 */

// @lc code=start
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function (s) {
  //转换数组之后循环判断非空大法
  let arr = [];
  s.split(" ").map((x) => {
    if (x) arr.push(x);
  });
  return arr[arr.length - 1].length;
};
// @lc code=end

简单写法:一行代码,思路先用字符串的trim方法,在转换成数组,去掉数组最后一个值并取其长度

/*
 * @lc app=leetcode.cn id=58 lang=javascript
 *
 * [58] 最后一个单词的长度
 */

// @lc code=start
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function (s) {
  //便捷方法
  return s.trim().split(" ").pop().length;
};
// @lc code=end

官方题解:反向循环,记录长度之后是空的长度减一,不是空的就循环不是空的那个值

/*
 * @lc app=leetcode.cn id=58 lang=javascript
 *
 * [58] 最后一个单词的长度
 */

// @lc code=start
/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLastWord = function (s) {
  //官方题解:反向循环
  let index = s.length - 1;
  while (s[index] == " ") {
    index--;
  }
  let wordLength = 0;
  while (index >= 0 && s[index] != " ") {
    wordLength++;
    index--;
  }
  return wordLength;
};
// @lc code=end

最近压力真的好大,就是行动上的小矮子,别人可以的话,其实你也可以,不要为自己找借口,小垃圾!!!

你可能感兴趣的:(算法记录,算法,leetcode,职场和发展)