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

OJ练习第90题——删除字符使频率相同

删除字符使频率相同

力扣链接:2423. 删除字符使频率相同

题目描述

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

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

注意:

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

示例

示例 1:

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

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

示例3:
输入:“aaaaa”, “abcde”, “aaaab”, “aaabb”
输出:true

Java代码

class Solution {public boolean equalFrequency(String word) {int[] map = new int[26];for(char c : word.toCharArray()) map[c - 'a']++;for(int i = 0; i < 26; i++) {map[i]--;//从头遍历,删掉一个试试if(map[i] != -1 && checkFrequency(map)) return true;map[i]++;}return false;}//检查剩下字符频率是否相同boolean checkFrequency(int[] a) {int pre = -1;for(int i = 0; i < 26; i++) {if(pre == -1 && a[i] != 0) pre = a[i];if(a[i] != 0 && a[i] != pre) return false;}return true;}
}

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/remove-letter-to-equalize-frequency
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

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

相关文章:

  • 云原生Istio基本介绍
  • Vue(简单了解Cookie、生命周期)
  • 57.网页设计图标实战
  • 浅析AI视频智能检测技术在城市管理中的场景应用
  • unity中的Line Renderer
  • 【数据架构系列-06】一文搞懂数据模型的3中类型——概念模型、逻辑模型、物理模型
  • Java——Java面向对象
  • MyBatis:生命周期、作用域、结果集映射 ResultMap、日志、分页、使用注解开发、Lombok
  • PostgreSQL安装和开启SSL加密连接【配置双向认证】
  • 【ShenYu系列】ShenYu Dubbo插件全流程源码解析
  • spring解决循环依赖的三级缓存
  • C++ - 标准库(STL)
  • Java使用 Scanner连续输入int, String 异常错误输出原因分析
  • pt13网络编程
  • 华为云 绑定/更换证书
  • 重大问题,Windows11出现重大BUG
  • 傅里叶变换解析
  • 你的登录接口真的安全吗?
  • ChatGPT情商很高,但并不适合当搜索引擎
  • Mac 地址与 IP 地址有什么区别?
  • bootloaders
  • PC或服务器装双系统
  • 嵌入式代码查看分析利器---Understand
  • 人群计数经典方法Density Map Estimation,密度图估计
  • 【华为】Smart-Link基础知识
  • 分享24个强大的HTML属性 —— 建议每位前端工程师都应该掌握
  • NIO基础 - 网络编程
  • 06.toRef 和 toRefs
  • RabbitMq、Kafka、RocketMq整理
  • Python多元线性回归预测模型实验完整版