当前位置: 首页 > news >正文

【Java】【字节面试】字符串中 出现次数最多的字符和 对应次数

题目

字符串中 出现次数最多的字符和 对应次数

输入:hello

输出:l,2

思路

通用思路

1. 对于统计次数问题,常用map 

key:单个字符

value:次数, 这样能够 更好的记录对象+次数,方便后续需要

2.对于 一个序列(set,map,数组等等),找到一个最值问题

常用 :

定义一个临时变量,max值=0;

遍历序列  找到更大值,就更新max

举例:找int[10] arr 的最大值

        //定义临时变量int max=0;//遍历,如果更大就更新maxfor(int i=0;i<arr.length();i++){if(arr[i]>max){//更新max=arr[i];}}//结果就是max

2.1 初始化最值

找最大值:

1)Integer max=0

2)第一个元素

找最小值得:

初始化方式适用场景注意事项
Integer.MAX_VALUE通用,推荐 ✅适用于所有整数(包括负数)
序列的第一个元素非空序列需额外判空

本题:

1.遍历,放进map中

key :字符

value:出现次数

2.已知map,怎么找到 次数最多 字符+次数

Integer max;

String strMax;

遍历map, 如果value>max 

value替换max key替换 strmax

代码

   public static void main(String[] args) {//找出当前字符串 出现次数最多字符 以及对应次数//输入hello  输入l,2String str="hello";HashMap<String, Integer> map=new HashMap<String, Integer>();//1.遍历String  放进mapfor (int i = 0; i < str.length(); i++) {String strcur=String.valueOf(str.charAt(i));//wuif (!map.containsKey(strcur)){map.put(strcur,1);}//youelse {Integer value=map.get(strcur);map.put(strcur,value+1);}}//结果//key   h e l o//value 1 1 2 1//2.定于临时变量 strmax maxString strmax="";Integer max = 0;//3-方法1 遍历entrys  如果for (Map.Entry<String,Integer> entry: map.entrySet()) {// 如果 value>maxif(entry.getValue()>max) {//value替换max  key替换 strmaxmax= entry.getValue();strmax= entry.getKey();}}System.out.println(max+","+strmax);//3-方法2 遍历key  如果// 如果 key.get>max//value替换max  key替换 strmaxfor (String key:map.keySet()){// 如果 key.get>maxif (map.get(key)>max) {//value替换max  key替换 strmaxmax=map.get(key);strmax=key;}}System.out.println(max+","+strmax);}

知识点总结:

1.手撕技巧

不确定左边类型怎么写的情况下

不 new,直接使用

2.map的4大遍历 方式

  1. 如何遍历 Map?
    • 使用 keySet()values()entrySet()
  2. 获得键值对的set,然后遍历
  3. 获得键的set,然后遍历
  4. 获得值的对象
  5. lambda

方法

核心 API

优点

entrySet()

map.entrySet()

直接获取键和值,效率高

keySet()

map.keySet()

适合只需要键的场景

values()

map.values()

适合只需要值的场景

forEach()

map.forEach()

代码简洁,适合现代 Java

2)

3.lambda 不能修改外部变量


 通用思路总结

1. 对于统计次数问题,常用map 

key:单个字符

value:次数, 这样能够 更好的记录对象+次数,方便后续需要

2.对于 一个序列(set,map,数组等等),找到一个最值问题

常用 :

定义一个临时变量,max值=0;

遍历序列  找到更大值,就更新max

举例:找int[10] arr 的最大值

        //定义临时变量int max=0;//遍历,如果更大就更新maxfor(int i=0;i<arr.length();i++){if(arr[i]>max){//更新max=arr[i];}}//结果就是max

2.1 初始化最值

找最大值:

1)Integer max=0

2)第一个元素

找最小值得:

初始化方式适用场景注意事项
Integer.MAX_VALUE通用,推荐 ✅适用于所有整数(包括负数)
序列的第一个元素非空序列需额外判空

http://www.xdnf.cn/news/1094491.html

相关文章:

  • pytorch chunk 切块
  • 两种方式清除已经保存的git账号密码
  • 11.7 ChatGPT奖励模型完全解读:RLHF核心技术深度剖析与Hugging Face实战
  • MyBatisPlus-03-扩展功能
  • 学习日记-spring-day44-7.9
  • 前端进阶之路-从传统前端到VUE-JS(第四期-VUE-JS页面布局与动态内容实现)(Element Plus方式)
  • 2025快手创作者中心发布视频python实现
  • 基于docker进行渗透测试环境的快速搭建(在ubantu中docker设置代理)
  • 单细胞入门(2)-经典案例分析
  • 分治算法---快排
  • 【TCP/IP】2. 计算机网络与因特网体系结构
  • Linux驱动04 --- 网络编程TCP客户端
  • 【AI News | 20250708】每日AI进展
  • mysql 故障检测与处理
  • 【牛客刷题】游游的字母串
  • RIP实验
  • 练习:对象数组 5
  • DolphinScheduler 3.2.0 Worker启动核心源码解析
  • C/C++ 高频八股文面试题1000题(二)
  • EPLAN 电气制图(六):结构盒与设备管理器核心概念(基础知识选看)
  • Shader面试题100道之(41-60)
  • 【视频观看系统】- 技术与架构选型
  • 家庭网络中的服务器怎么对外提供服务?
  • NumPy-广播机制深入理解
  • 技术开发栈中 URL地址末尾加不加 “/“ 有什么区别?
  • Vue 中mounted 生命周期钩子的执行时机和 v-for 的渲染顺序
  • Mysql中的日志-undo/redo/binlog详解
  • Hexo + Butterfly + Vercel 完整个人Blog部署指南
  • 17.Spring Boot的Bean详解(新手版)
  • TCP的可靠传输机制