# 434 字符串中的单词数
# 题目
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
# 题解
- 使用 match 去匹配单词,然后返回匹配后的长度。
TIP
执行用时:88 ms, 在所有 JavaScript 提交中击败了 24.63% 的用户
内存消耗:37 MB, 在所有 JavaScript 提交中击败了 22.59% 的用户
内存消耗: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% 的用户
内存消耗: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)`,使用了一个变量来保存单词的个数
- 最好情况:
- 最坏情况: