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

​力扣解法汇总2423. 删除字符使频率相同

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一个下标从 0 开始的字符串 word ,字符串只包含小写英文字母。你需要选择 一个 下标并 删除 下标处的字符,使得 word 中剩余每个字母出现 频率 相同。

如果删除一个字母后,word 中剩余所有字母的出现频率都相同,那么返回 true ,否则返回 false 。

注意:

  • 字母 x 的 频率 是这个字母在字符串中出现的次数。
  • 你 必须 恰好删除一个字母,不能一个字母都不删除。

示例 1:

输入:word = "abcc"
输出:true
解释:选择下标 3 并删除该字母,word 变成 "abc" 且每个字母出现频率都为 1 。

示例 2:

输入:word = "aazz"
输出:false
解释:我们必须删除一个字母,所以要么 "a" 的频率变为 1 且 "z" 的频率为 2 ,要么两个字母频率反过来。所以不可能让剩余所有字母出现频率相同。

提示:

  • 2 <= word.length <= 100
  • word 只包含小写英文字母。

解题思路:

* 解题思路:
* 首先,求出每个字符出现的次数。
* 然后每个字符的次数都尝试减1,然后统计这个map中的所有value是否一致。

代码:

public class Solution2423 {Integer first = null;public boolean equalFrequency(String word) {Map<Character, Integer> map = new HashMap<>();for (char c : word.toCharArray()) {Integer integer = map.getOrDefault(c, 0);map.put(c, integer + 1);}for (char c : map.keySet()) {int time = map.getOrDefault(c, 0);if (time == 0) {continue;}first = null;map.put(c, time - 1);if (map.values().stream().allMatch(new Predicate<Integer>() {@Overridepublic boolean test(Integer integer) {if (integer == 0) {return true;}if (first == null) {first = integer;return true;}return integer.equals(first);}})) {return true;}map.put(c, time);}return false;}
}

http://www.lryc.cn/news/64567.html

相关文章:

  • 【超算/先进计算学习】日报8
  • 《LearnUE——基础指南:上篇—2》——GamePlay架构之Level和World
  • IDEA部署tomcat项目
  • IAM角色
  • 【VAR | 时间序列】以美国 GDP 和通货膨胀数据为例的VAR模型简单实战(含Python源代码)
  • 常用的设计模式之二(行为型模式)
  • MYSQL基本操作(增删改查)
  • 双周赛103(模拟、网格图BFS、树状数组)
  • 【数据结构】二叉树(详细)
  • 蓝牙耳机哪款性价比高一些?2023年性价比最高的蓝牙耳机推荐
  • 等保2.0存在的问题
  • 国民技术N32G430开发笔记(9)- IAP升级 Bootloader的制作
  • 如何使用depcheck检查vue和react的依赖,以后不用把时间浪费在依赖问题上了
  • 使用Python和机器学习进行文本情感分类
  • QML路径视图(The PathView)
  • 5月4号软件资讯更新合集.....
  • 基于 Rainbond 的混合云管理解决方案
  • 加强网络风险生命周期
  • Java——二叉树的深度
  • 一般现在时(二)
  • leetcode657. 机器人能否返回原点
  • DAY 48 Nginx的 location与rewrite模块
  • Linux 常用操作技巧
  • BetaFlight统一硬件配置文件研读之timer命令
  • 码出高效:Java开发手册笔记(java对象四种引用关系及ThreadLocal)
  • 为什么要进行数据决策?数据决策对企业而言有何重要意义?
  • 2. Java 异常体系
  • 如何学好STM32,需要哪些步骤?
  • 武忠祥老师每日一题||不定积分基础训练(四)
  • 记一次产线打印json导致的redis连接超时