Skip to content

434. 字符串中的单词数

解题过程

INFO

题目链接 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印的字符

javascript
/**
 * @link https://leetcode.cn/problems/number-of-segments-in-a-string/
 * @title 434. 字符串中的单词数
 * @description 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
 * 请注意,你可以假定字符串里不包括任何不可打印的字符。
 * @param {string} s
 * @return {number}
 */
// 解法一
// 思路:字符串 API matchAll 正则表达式匹配非空字符单词即可
var countSegments = function (s) {
  return [ ...s.matchAll(/\S+/g)].length
}

// 解法二
// 思路:官方解法循环遍历字符串统计空格字符数量
var countSegments = function (s) {
  let count = 0

  for (let i = 0; i < s.length; i++) {
      if ((i === 0 || s[i - 1] === ' ') && s[i] !== ' ') {
        count++
      }
  }

  return count
}

// const result = countSegments("Hello, my name is John") // 5
// const result = countSegments("love live! mu'sic forever") // 4
const result = countSegments(", , , ,        a, eaefa") // 6
// const result = countSegments("Hello") // 1
// const result = countSegments("    ") // 0
console.log(result)

解题感受

偷了个懒,直接用字符串 API ➕ 正则表达式统计即可,也有想到官方解法思路,通过遍历字符串根据空格数量来判断的,但是为了偷懒就没有做了

参考题解