LeetCode 5910. 检查两个字符串是否几乎相等

2023-11-09

如果两个字符串 word1 和 word2 中从 ‘a’ 到 ‘z’ 每一个字母出现频率之差都 不超过 3 ,那么我们称这两个字符串 word1 和 word2 几乎相等 。
给你两个长度都为 n 的字符串 word1 和 word2 ,如果 word1 和 word2 几乎相等 ,请你返回 true ,否则返回 false 。
一个字母 x 的出现 频率 指的是它在字符串中出现的次数。

示例 1:

输入:word1 = “aaaa”, word2 = “bccb”
输出:false
解释:字符串 “aaaa” 中有 4 个 ‘a’,但是 “bccb” 中有 0 个 ‘a’ 。 两者之差为 4 ,大于上限 3 。

示例 2:

输入:word1 = “abcdeef”, word2 = “abaaacc”
输出:true
解释:word1 和 word2中每个字母出现频率之差至多为 3 :

  • ‘a’ 在 word1 中出现了 1 次,在 word2 中出现了 4 次,差为 3 。
  • ‘b’ 在 word1 中出现了 1 次,在 word2 中出现了 1 次,差为 0 。
  • ‘c’ 在 word1 中出现了 1 次,在 word2 中出现了 2 次,差为 1 。
  • ‘d’ 在 word1 中出现了 1 次,在 word2 中出现了 0 次,差为 1 。
  • ‘e’ 在 word1 中出现了 2 次,在 word2 中出现了 0 次,差为 2 。
  • ‘f’ 在 word1 中出现了 1 次,在 word2 中出现了 0 次,差为 1 。

示例 3:

输入:word1 = “cccddabba”, word2 =“babababab”
输出:true
解释:word1 和 word2 中每个字母出现频率之差至多为 3 :

  • ‘a’ 在 word1 中出现了 2 次,在 word2 中出现了 4 次,差为 2 。
  • ‘b’ 在 word1 中出现了 2 次,在 word2 中出现了 5 次,差为 3 。
  • ‘c’ 在 word1 中出现了 3 次,在 word2 中出现了 0 次,差为 3 。
  • ‘d’ 在 word1 中出现了 2 次,在 word2 中出现了 0 次,差为 2 。

提示:

n == word1.length == word2.length
1 <= n <= 100
word1 和 word2 都只包含小写英文字母。

解题思路:

首先创建一个整型数组用来存放字母,接下来我们遍历字符串 word1,对于其中的每个字符,我们将该元素对应数组中的值+1;随后我们遍历字符串word2,对于其中的每个字符,我们将该元素对应数组中的值-1。最终,数组中每个字符的值即为该字符在 word1 中的频率与该字符在word2 中的频率之差。
我们判断该数组中每个字符的值的绝对值是否小于等于3:如果是,则说明两个字符串几乎相等,此时我们返回 true;反之则说明两个字符串并不几乎相等,此时返回 false。

AC代码:

class Solution {
    public boolean checkAlmostEquivalent(String word1, String word2) {
        //创建一个整型数组来存放26个字母        
        int[] a = new int[26];
        for (int i = 0; i < word1.length();i++) {
            a[word1.charAt(i) - 'a']++;
        }
        for (int i = 0; i < word2.length();i++) {
            a[word2.charAt(i) - 'a']--;
        }
        for (int i = 0; i < 26; i++) {
            if (Math.abs(a[i]) > 3)
                return false;
        }
        return true;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode 5910. 检查两个字符串是否几乎相等 的相关文章

  • HashMap不写入数据库

    我尝试在我的数据库中写入 但只写入发件人和消息 我不明白为什么会发生这种情况 我认为问题出在我使用 sendMessage 的地方 我认为问题是我没有什么可以做的读 写其他用户的主键 我在数据库中写入消息的活动 public class M
  • 使用 GWT CellTableBuilder 构建树表

    Is it possible to build a tree table like this http www sencha com examples ExamplePlace basictreegrid with the new Cell
  • 如何在spring mvc中从控制器名称+操作名称获取映射的URL?

    是否有现有的解决方案可以从 Spring MVC3 中的 控制器名称 操作名称 获取映射的 URL 例如 asp net mvc 或 Rails 中的 UrlHelper 我觉得非常有用 thx 也许 你想要这样的东西 in your Co
  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • 使用 RecyclerView 适配器在运行时更改布局屏幕

    我有两个布局文件 如下所示 如果列表中存在数据 则我显示此布局 当列表为空时 我会显示此布局 现在我想在运行时更改布局 当用户从列表中删除最后一项时 我想将布局更改为第二张图片中显示的 空购物车布局 In getItemCount Recy
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • 逃离的正确方法是什么?使用 Oracle 12c MATCH_RECOGNIZE 时 JDBCPreparedStatement 中的字符?

    以下查询在 Oracle 12c 中是正确的 SELECT FROM dual MATCH RECOGNIZE MEASURES a dummy AS dummy PATTERN a DEFINE a AS 1 1 但它不能通过 JDBC
  • 尝试使用等于“是”或“否”的字符串变量重新启动 do-while 循环

    计算行程距离的非常简单的程序 一周前刚刚开始 我有这个循环用于解决真或假问题 但我希望它适用于简单的 是 或 否 我为此分配的字符串是答案 public class Main public static void main String a
  • 为什么java中的for-each循环中需要声明变量

    for 每个循环的通常形式是这样的 for Foo bar bars bar doThings 但如果我想保留 bar 直到循环结束 我可以not使用 foreach 循环 Foo bar null Syntax error on toke
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Java:多线程内的 XA 事务传播

    我如何使用事务管理器 例如Bitronix http docs codehaus org display BTM Home JBoss TS http www jboss org jbosstm or Atomikos http www a
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5

随机推荐

  • 使用EasyExcel添加Excel数据

    一 导入excel代码 1 pom文件
  • laravel经验分享(2)

    标题laravel经验分享 2 通过一个简单的get请求让新手们了解控制器 模型 数据表 api路由之间的关系 1 控制器创建 php artisan make controller Api newscontroller 创建成功之后 Co
  • 基于Linux安装Docker

    Docker官网 Docker Docs How to build share and run applications Docker Documentation 学习任何技术 一定要参考相应的官网学习 一定要参考官网学习 目录 一 环境准
  • 现场嵌入式设备中的EC20模块如何通过互联网将TCP报文传输到阿里云服务器

    情况说明 现场有几台嵌入式设备 每台设备上有一块EC20模块做为TCP客户端 希望将现场采集的传感器数据通过互联网传输到阿里云服务器 阿里云服务器上面运行一个用C 语言编写的服务器程序 就可以接收现场设备采集的传感器数据 一 阿里云服务器公
  • VC编程实现文本语音转换

    VC编程实现文本语音转换 文本语音 Text to Speech 以下简称TTS 它的作用就是把通过TTS引擎把文本转化为语音输出 本文不是讲述如何建立自己的TTS引擎 而是简单介绍如何运用Microsoft Speech SDK 建立自己
  • dynamo方程怎么写_【简明自控】为什么特征方程如此重要

    简明自动控制 为什么特征方程如此重要 热场视频 自平衡杆 双轴反作用轮倒立摆 哔哩哔哩 干杯 bilibili www bilibili com 顶个棍子 具有主动脚轮的全向移动机器人 哔哩哔哩 干杯 bilibili www bilibi
  • 二叉树的创建、前中后序遍历(递归和非递归)C语言实现

    直接上代码 include
  • LA@方阵相似@相似矩阵的性质@正交相似对角化

    文章目录 方阵相似 引言 相似矩阵定义 相似变换 相似变换矩阵 相似矩阵的矩阵多项式和特征值相同 推论 与对角阵相似的矩阵性质定理 相似矩阵性质 导出性质 相似矩阵的乘方性质 相似矩阵和矩阵多项式 相似对角阵 对角阵多项式的展开 小结 强矩
  • vue3 解决reactive数组对象属性更新问题

    vue3 setup中使用对象数组 const state reactive
  • Python+Selenium-自动化框架登录之验证码识别

    前言 本篇主要记录在项目登录过程中验证码的问题 基于pytesseract和PIL组件实现简单的验证码图片识别 需要自行配置pytesseract PIL环境 目标 获取验证码 自动输入实现登录 一 截取验证码图片信息并保存 访问目标界面
  • Flutter判断当前月份是第几季度、Android判断当前月份是第几季度 、根据月份判断季度方法

    一年有12个月 分为四个季度 怎样判断当前月份是第几个季度呢 方法一 if else 判断 1 flutter 当前月份 int currentMonth DateTime now month 季度 int quarter if curre
  • SpringBoot + MyBatisPlus + MySQL8 实现树形结构查询

    场景 今天在实现权限功能模块时 需要将查询的权限数据 以树形结构的方式返回给前端 功能实现 第一步 权限表结构定义及其功能演示数据 DROP TABLE IF EXISTS baoan privilege CREATE TABLE baoa
  • 3_Docker 常用命令

    进程命令 启动docker服务 systemctl start docker 停止docker服务 systemctl stop docker 重启docker服务 systemctl restart docker 查看docker服务状态
  • 手把手教你 在linux上安装kafka

    目录 1 准备服务器 2 选一台服务器配置kafka安装包 2 1 下载安装包 2 2 解压安装包 2 3 修改配置文件 3 分发安装包到其他机器 4 修改每台机器的broker id 5 配置环境变量 6 启停kafka服务 6 1 启动
  • Linux之RedHat 7 图形界面版安装(转载)

    linuxLinux之RedHat 7 图形界面版安装的详细教程 点击跳转 转载 https blog csdn net star in shy article details 82590241
  • 进程控制块和状态——随堂笔记

    1 PCB 描述进程的数据结构 当一个进程创建以后交给操作系统管理 管理的时候要对进程的属性进行描述 1 进程的描述信息 进程的基本信息pid给每个进程的编号 名字 2 处理器状态信息 在进程执行过程中使用的处理器的各种寄存器的信息 原因
  • Linux下的时间(ZZ)

    1 Linux下的时间 1 1 Linux下的时间系统 1 2 Linux下与时间有关的数据结构 2 获得当前时间 3 延时 4 定时器 4 1 alarm 4 2 setitimer 1 Linux下的时间1 1 Linux下的时间系统
  • Linux CentOS 巡检脚本

    系统巡检脚本 有常用的检查模块 如硬盘 内存 进程等 安全性检查等 1 巡查脚本 代码如下 示例 xunjian sh bin bash 系统状态 host while do clear echo e 当前在查看 e 1 31m 主机状态信
  • 永洪科技入选“2023大数据优秀服务商”

    8月23日 2023大数据优秀服务商 发布 永洪科技入选 此次评选由DBC CIS CIW eNet研究院牵头组织 旨在遴选大数据产业各细分赛道具有代表性与创新力的企业 组织 并展现其独特价值 重点考量技术实力 业内口碑 成长性 品牌力以及
  • LeetCode 5910. 检查两个字符串是否几乎相等

    如果两个字符串 word1 和 word2 中从 a 到 z 每一个字母出现频率之差都 不超过 3 那么我们称这两个字符串 word1 和 word2 几乎相等 给你两个长度都为 n 的字符串 word1 和 word2 如果 word1