当前位置: 首页 > 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.dtcms.com/a/271679.html

相关文章:

  • HTML应用指南:利用GET请求获取全国山姆门店位置信息
  • 跨服务sqlplus连接oracle数据库
  • 如何卸载本机的node.js
  • 源码角度解析 --- HashMap 的 get 和 put 流程
  • 前端使用fetch-event-source实现AI对话
  • AI Agent:我的第一个Agent项目
  • 爬虫-数据解析
  • [C语言初阶]操作符
  • ZeroMQ 代理架构实现(Python 服务端 + C++ 代理 + C++ 客户端)
  • RabbitMQ 4.1.1-Local random exchange体验
  • 解决Ollama下载太慢问题
  • Claude Code 环境搭建教程
  • Java SE--继承
  • Python 机器学习核心入门与实战进阶 Day 7 - 复盘 + 综合实战挑战
  • NW658NW659美光固态闪存NW660NW708
  • 陶哲轩:数学界的莫扎特与跨界探索者
  • 离线二维码生成器,无需网络快速制作
  • 神经网络基础及API使用详解
  • 【项目经理】经典面试题0002:项目经理和交付经理的区别?
  • 变频器实习DAY3
  • S7-1500——(一)西门子PLC编程从入门到精通3、基于TIA 博途结构化控制语言——SCL(一)
  • 全连接神经网络(MLP)原理与PyTorch实现详解
  • 【freertos-kernel】MemMang
  • Deepseek搭建智能体个人知识库
  • LeetCode经典题解:1、两数之和(Two Sum)
  • Python Day8
  • 第九篇:信息化知识 --系统集成项目管理工程师 第3版专题知识点笔记
  • MySQL--函数
  • [Python 基础课程]关键字
  • 1068.产品销售分析Ⅰ