当前位置: 面试刷题>> 频率最高的词 (经典算法题500道)
### 完整题目描述
**题目**: 编写一个程序,用于找出给定文本(字符串)中频率最高的词(忽略大小写,且假设文本中的标点符号和空格已经被适当处理,只保留字母和空格),并返回这个词及其出现次数。如果有多个词出现次数相同且都是最高的,则返回其中任意一个即可。
### 示例输入
```
"Hello world, this is a test. Hello again, test test."
```
### 示例输出
```
"test", 3
```
### PHP 示例代码
```php
$freq) {
if ($freq > $maxFreq) {
$maxFreq = $freq;
$mostFrequentWord = $word;
}
}
return array($mostFrequentWord, $maxFreq);
}
// 示例用法
$text = "Hello world, this is a test. Hello again, test test.";
list($word, $freq) = findMostFrequentWord($text);
echo '"' . $word . '", ' . $freq;
?>
```
### Python 示例代码
```python
def find_most_frequent_word(text):
# 将文本转换为小写并分割成单词列表,忽略非字母字符
words = re.findall(r'\b\w+\b', text.lower())
# 使用字典统计每个单词的频率
frequency = {}
for word in words:
if word not in frequency:
frequency[word] = 1
else:
frequency[word] += 1
# 找到频率最高的词
max_freq = max(frequency.values())
most_frequent_word = [word for word, freq in frequency.items() if freq == max_freq][0]
return most_frequent_word, max_freq
# 示例用法
import re
text = "Hello world, this is a test. Hello again, test test."
word, freq = find_most_frequent_word(text)
print(f'"{word}", {freq}')
```
### JavaScript 示例代码
```javascript
function findMostFrequentWord(text) {
// 将文本转换为小写并去除非字母字符
const cleanedText = text.toLowerCase().replace(/[^a-z\s]/gi, '');
// 分割成单词数组
const words = cleanedText.split(/\s+/);
// 初始化频率对象
const frequency = {};
// 计算每个单词的频率
words.forEach(word => {
if (word) { // 忽略空字符串
if (!frequency[word]) {
frequency[word] = 1;
} else {
frequency[word]++;
}
}
});
// 找到频率最高的词
let maxFreq = 0;
let mostFrequentWord = '';
Object.keys(frequency).forEach(word => {
if (frequency[word] > maxFreq) {
maxFreq = frequency[word];
mostFrequentWord = word;
}
});
return [mostFrequentWord, maxFreq];
}
// 示例用法
const text = "Hello world, this is a test. Hello again, test test.";
const [word, freq] = findMostFrequentWord(text);
console.log(`"${word}", ${freq}`);
```
**码小课网站中有更多相关内容分享给大家学习**,包括但不限于算法基础、数据结构、编程语言进阶等内容,欢迎大家访问学习。