汕尾招聘 网站建设合伙人,网站 移动app开发,win10系统可以做网站搭建,河北路泰建设工程有限公司网站力扣热题#xff1a;最常见的单词
开篇 今天是备战蓝桥杯的第17天#xff0c;今天到现在刷了5道算法题#xff0c;分享一道很不错的题目。
题目链接:819.最常见的单词
题目描述 代码思路 根据题目要求#xff0c;我的思路是#xff1a;建立一个哈希表#xff0c;把每个… 力扣热题最常见的单词
开篇 今天是备战蓝桥杯的第17天今天到现在刷了5道算法题分享一道很不错的题目。
题目链接:819.最常见的单词
题目描述 代码思路 根据题目要求我的思路是建立一个哈希表把每个单词及其出现的次数记录下来最后遍历哈希表返回出现次数最多的单词。思路并不难难的是代码的实现。
代码纯享版
class Solution {public String mostCommonWord(String paragraph, String[] banned) {paragraph paragraph.toLowerCase();MapString, Integer map new HashMap();StringBuffer str new StringBuffer();int left 0;while(left paragraph.length()){char s paragraph.charAt(left);if(s a s z){str.append( s);}else if(str.length() 0){if(map.containsKey(str.toString())){map.put(str.toString(),map.get(str.toString()) 1);}else map.put(str.toString(), 1);str.delete(0, str.length());}left;if(left paragraph.length() s a s z){if(str.length() 0){if(map.containsKey(str.toString())){map.put(str.toString(),map.get(str.toString()) 1);}else map.put(str.toString(), 1);str.delete(0, str.length());}}}for(int i 0; i banned.length; i){if(map.containsKey(banned[i])){map.remove(banned[i]);}}int max 0;String maxstr ;for(Map.EntryString, Integer entry : map.entrySet()){if(entry.getValue() max){max entry.getValue();maxstr entry.getKey();}}return maxstr;}
}代码逐行解析版
class Solution {public String mostCommonWord(String paragraph, String[] banned) {paragraph paragraph.toLowerCase(); //把段落中的字符全部变成小写MapString, Integer map new HashMap(); //创建哈希表保存单词及其次数StringBuffer str new StringBuffer(); //创建字符串来暂时保存单词int left 0; //扫描段落的指针while(left paragraph.length()){ //循环条件指针小于段落长度char s paragraph.charAt(left); //提取字符判断if(s a s z){ //符合要求放入字符串中str.append( s);}else if(str.length() 0){ //不符合要求证明是空格那之前保存的部分就是一个完整的单词if(map.containsKey(str.toString())){ //if-else都是把单词存入哈希表map.put(str.toString(),map.get(str.toString()) 1);}else map.put(str.toString(), 1);str.delete(0, str.length()); //删掉字符串中的单词方便下一个单词的保存}left;//指针右移if(left paragraph.length() s a s z){ //单独判断最后一个字符的情况如果最后一个字符是字母证明存在单词复制粘贴上面哈希表保存单词的方法即可if(str.length() 0){if(map.containsKey(str.toString())){map.put(str.toString(),map.get(str.toString()) 1);}else map.put(str.toString(), 1);str.delete(0, str.length());}}}for(int i 0; i banned.length; i){ //若哈希表中有禁用的单词则删掉if(map.containsKey(banned[i])){map.remove(banned[i]);}}int max 0; //max统计最多次出现的次数String maxstr ; //maxstr记录最多次出现的单词for(Map.EntryString, Integer entry : map.entrySet()){ //利用遍历哈希表的方法遍历if(entry.getValue() max){ //哈希表的值如果大于maxmax entry.getValue(); //更新max和maxstrmaxstr entry.getKey();}}return maxstr;//返回最常见的单词}
}结语 如果这道题的分享对您有所帮助点个关注我会每天更新力扣题目的分享与大家一起向前迈进。