题目描述:
解法:求出段落中所有的单词
代码:
class Solution {
public String mostCommonWord(String paragraph, String[] banned) {
String rest = ""; //函数返回值
paragraph = paragraph.toLowerCase(); //转为小写
int pre = 0; // paragraph.substring(pre,i)
int len = paragraph.length();
int count = 0; //标记最多出现次数
Set<String> set = new HashSet<>();// 便于检验禁止单词
for(String s: banned){
set.add(s);
}
//key是 paragraph 中的单词,value是单词出现的次数
Map<String, Integer> map = new HashMap<>();
for(int i = 0; i < len; i++){
pre = i;
while(i < len && paragraph.charAt(i) <= 'z' && paragraph.charAt(i) >= 'a'){
i++;
}
if(i <= len){
String str = paragraph.substring(pre,i);
map.put(str, map.getOrDefault(str, 0) + 1);
if(map.get(str) > count && !set.contains(str)){
count = map.get(str);
rest = str;
}
while(i < len && (paragraph.charAt(i) < 'a' || paragraph.charAt(i) > 'z')){
i++;
}
i--;
}
}
return rest;
}
}