# 434 字符串中的单词数

# 题目

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。

请注意,你可以假定字符串里不包括任何不可打印的字符。

示例:

输入: "Hello, my name is John"
输出: 5

解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。

# 题解

  1. 使用 match 去匹配单词,然后返回匹配后的长度。

TIP

执行用时:88 ms, 在所有 JavaScript 提交中击败了 24.63% 的用户
内存消耗:37 MB, 在所有 JavaScript 提交中击败了 22.59% 的用户
/**
 * @param {string} s
 * @return {number}
 */
var countSegments = function(s) {
    let count = s.match(/\S+/gi)
    return  count != null ? count.length : 0
};
  • 时间复杂度: `O(n)`,使用 match 方法进行查找
  • 空间复杂度: `O(n)`,使用了一个变量来保存匹配到的单词
  • 最好情况: s 为空或者单词数量较少
  • 最坏情况: s 比较长

TIP

执行用时:80 ms, 在所有 JavaScript 提交中击败了 56.68% 的用户
内存消耗:37.1 MB, 在所有 JavaScript 提交中击败了 18.27% 的用户
/**
 * @param {string} s
 * @return {number}
 */
var countSegments = function(s) {
    let count = 0
    for(let i=0;i<s.length;i++) {
        if(s[i] !== ' ' && (s[i-1] == undefined || s[i-1] == ' ')) {
            count++
        }
    }

    return count
};
  • 时间复杂度: `O(n)`,使用 for 循环进行遍历
  • 空间复杂度: `O(1)`,使用了一个变量来保存单词的个数
  • 最好情况:
  • 最坏情况:
最后更新时间: 10/3/2020, 11:20:55 PM