本文共 3035 字,大约阅读时间需要 10 分钟。
Here is an optimized version of the thought process and solution:
Data Preparation
Word Frequency Calculation
Filter Banned Words
Determine Most Frequent Word
Final Solution Code
import java.util.HashMap;import java.util.HashSet;import java.util.Map;public class Solution { public String mostCommonWord(String paragraph, String[] banned) { // Convert paragraph to lowercase and remove punctuation StringBuilder cleanParagraph = new StringBuilder(); for (char c : paragraph.toCharArray()) { if (c >= 'a' && c <= 'z') { cleanParagraph.append(c); } } // Split into words String[] words = cleanParagraph.toString().split(" +"); // Count frequency of each word Map frequencyMap = new HashMap<>(); for (String word : words) { frequencyMap.put(word, frequencyMap.getOrDefault(word, 0) + 1); } // Create banned words set for quick lookup HashSet bannedWords = new HashSet<>(); for (String bw : banned) { bannedWords.add(bw.toLowerCase()); } // Exclude banned words and find the most frequent int maxCount = -1; String result = ""; for (Map.Entry entry : frequencyMap.entrySet()) { if (!bannedWords.contains(entry.getKey())) { if (entry.getValue() > maxCount) { maxCount = entry.getValue(); result = entry.getKey(); } } } return result; }} Explanation
转载地址:http://oogyk.baihongyu.com/