当前位置: 面试刷题>> 字符串中的单词数 (经典算法题500道)
### 题目描述
题目:**字符串中的单词数**
给定一个字符串`s`,该字符串由若干单词和可能的一些空格组成。单词之间由一个或多个空格分隔,但字符串的开头和结尾也可能包含额外的空格。你需要编写一个函数来计算字符串中单词的数量。
**注意**:
1. 单词仅由字母组成。
2. 单词之间可能由一个或多个空格分隔。
3. 字符串的开头和结尾也可能包含空格,这些空格不计入单词数量。
### 示例
**输入**: "Hello World"
**输出**: 2
**输入**: " fly me to the moon "
**输出**: 4
**输入**: "chillin"
**输出**: 1
**输入**: ""
**输出**: 0
### PHP 代码示例
```php
function countWords($s) {
// 使用trim()去除首尾空格,explode()按空格分割字符串
$words = explode(' ', trim($s));
// 过滤空字符串,计算非空字符串的数量
$count = 0;
foreach ($words as $word) {
if ($word !== '') {
$count++;
}
}
return $count;
}
// 示例用法
echo countWords("Hello World") . "\n"; // 输出: 2
echo countWords(" fly me to the moon ") . "\n"; // 输出: 4
echo countWords("chillin") . "\n"; // 输出: 1
echo countWords("") . "\n"; // 输出: 0
```
### Python 代码示例
```python
def count_words(s):
# 使用split()方法(默认按空格分割),配合filter()和str.strip()去除空字符串
words = filter(None, s.split())
return len(list(words))
# 示例用法
print(count_words("Hello World")) # 输出: 2
print(count_words(" fly me to the moon ")) # 输出: 4
print(count_words("chillin")) # 输出: 1
print(count_words("")) # 输出: 0
```
### JavaScript 代码示例
```javascript
function countWords(s) {
// 使用trim()去除首尾空格,split()按空格分割字符串,然后过滤空字符串
const words = s.trim().split(/\s+/).filter(word => word !== '');
return words.length;
}
// 示例用法
console.log(countWords("Hello World")); // 输出: 2
console.log(countWords(" fly me to the moon ")); // 输出: 4
console.log(countWords("chillin")); // 输出: 1
console.log(countWords("")); // 输出: 0
```
以上代码示例均能有效计算给定字符串中单词的数量,同时遵循了题目要求和注意事项。这些示例也隐含地展示了“码小课”网站可能涉及的编程教学内容和逻辑思考过程。