【LeetCode:1657. 确定两个字符串是否接近 | 计数 + 阅读理解】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 计数 + 阅读理解
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 1657. 确定两个字符串是否接近

⛲ 题目描述

如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 :

操作 1:交换任意两个 现有 字符。
例如,abcde -> aecdb
操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。
例如,aacabb -> bbcbaa(所有 a 转化为 b ,而所有的 b 转换为 a )
你可以根据需要对任意一个字符串多次使用这两种操作。

给你两个字符串,word1 和 word2 。如果 word1 和 word2 接近 ,就返回 true ;否则,返回 false 。

示例 1:

输入:word1 = “abc”, word2 = “bca”
输出:true
解释:2 次操作从 word1 获得 word2 。
执行操作 1:“abc” -> “acb”
执行操作 1:“acb” -> “bca”
示例 2:

输入:word1 = “a”, word2 = “aa”
输出:false
解释:不管执行多少次操作,都无法从 word1 得到 word2 ,反之亦然。
示例 3:

输入:word1 = “cabbba”, word2 = “abbccc”
输出:true
解释:3 次操作从 word1 获得 word2 。
执行操作 1:“cabbba” -> “caabbb”
执行操作 2:“caabbb” -> “baaccc”
执行操作 2:“baaccc” -> “abbccc”
示例 4:

输入:word1 = “cabbba”, word2 = “aabbss”
输出:false
解释:不管执行多少次操作,都无法从 word1 得到 word2 ,反之亦然。

提示:

1 <= word1.length, word2.length <= 105
word1 和 word2 仅包含小写英文字母

🌟 求解思路&实现代码&运行结果


⚡ 计数 + 阅读理解

🥦 求解思路
  1. 通过理解题目的意思,题目有俩个不同的操作,但是无论是操作1,还是操作2,最后想让字符串1变换为字符串2,那么字符串1和字符串2中出现的字符都是相同的,同时,次数也都是相同的【注意:不一定是每个字符出现的次数相同,排序后判断俩个词频表是否相等即可】。
  2. 有了上面的求解思路,接下来通过具体的代码来实现。
  3. 实现代码如下所示:
🥦 实现代码
class Solution {
    public boolean closeStrings(String word1, String word2) {
        int n=word1.length(),m=word2.length();
        if(n!=m) return false;
        int[] cnt1=new int[26];
        int[] cnt2=new int[26];
        for(int i=0;i<n;i++){
            cnt1[word1.charAt(i)-'a']++;
            cnt2[word2.charAt(i)-'a']++;
        }
        // 出现的字母必须都一样
        for(int i=0;i<26;i++){
            if((cnt1[i]==0)!=(cnt2[i]==0)) return false;
        }
        Arrays.sort(cnt1);
        Arrays.sort(cnt2);
        return Arrays.equals(cnt1,cnt2);
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/208675.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

若依前后端分离版idea启动

1.项目地址 https://gitee.com/y_project/RuoYi-Vue2.修改配置 修改数据库配置 3.执行sql 4.启动项目 启动成功 5.启动前端 首先要安装nodejs,版本不能太高,本人用的nodejs11版本的 npm install --registry https://registry.npm.taobao.orgnpm run dev启动成功 访问 h…

态路小课堂丨InfiniBand与以太网:AI时代的网络差异

近年来&#xff0c;随着人工智能技术的迅猛发展&#xff0c;以ChatGPT为代表的大型AI模型引起了广泛关注。然而&#xff0c;在这个AI时代&#xff0c;我们不得不重新审视传统的以太网和基于InfiniBand构建的网络之间的区别。尤其是今年以来&#xff0c;InfiniBand因其在AI领域中…

CRM:如何通过客户数据分析获得业务洞察?

客户数据分析&#xff0c;也称客户分析&#xff0c;是收集、组织和分析客户数据&#xff0c;以深入了解客户行为的过程。企业将利用这些数据来制定与营销、产品开发、销售等相关的业务决策。 通过客户分析&#xff0c;你可以做出简单的业务决策&#xff0c;比如找出投资回报率…

景联文科技数据标注平台助力AI数据实现价值最大化

随着人工智能技术不断进步&#xff0c;应用领域不断拓宽&#xff0c;对于高质量、大规模标注数据的需求也在不断增加。 数据标注是人工智能行业的基石。机器学习需要运用海量的有效数据来做支撑&#xff0c;而这些数据就需要我们的标注员对其进行分析和处理&#xff0c;想要得到…

【力扣周赛】第 369 场周赛(⭐记忆化搜索 树形DP)

文章目录 竞赛链接Q1&#xff1a;2917. 找出数组中的 K-or 值竞赛时代码——按题意模拟 Q2&#xff1a;2918. 数组的最小相等和竞赛时代码——分类讨论 Q3&#xff1a;2919. 使数组变美的最小增量运算数⭐⭐⭐竞赛时代码——动态规划解法2——记忆化搜索 翻译成递推 Q4&#xf…

HarmonyOS ArkTS与c++交互通信

一、创建Native C Module 1、右键项目->new->module 如图&#xff1a; 2、修改build-profile.json5配置 "externalNativeOptions": {"path": "./src/main/cpp/CMakeLists.txt","arguments": "-v -DOHOS_STLc_shared&quo…

带你用uniapp从零开发一个仿小米商场_10.开发一个占剩余窗口的滚动区域

首先是一个头部的tag切换栏,这个很简单,就不多说 源码奉上 <scroll-view scroll-x class"border scroll-row" style"height: 80rpx;"><view class"scroll-row-item" style"height: 80rpx;line-height: 80rpx;" v-for"(…

数学建模之相关系数模型及其代码

发现新天地&#xff0c;欢迎访问小铬的主页(www.xiaocr.fun) 引言 本讲我们将介绍两种最为常用的相关系数&#xff1a;皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数。它们可用来衡量两个变量之间的相关性的大小&#xff0c;根据数据满足的不同条件&#xff0c;我们要…

PyTorch入门教学——加载数据(Dataloader)

1、简介 PyTorch中如何读取数据主要涉及到两个类&#xff0c;分别为Dataset和Dataloader。 Dataset&#xff1a;创建可被Pytorch使用的数据集Dataloader&#xff1a;向模型传递数据本文主要讲解Dataloader的使用方法。 2、Dataloader 2.1、查看使用方法 查看官网文档&#…

matlab simulink PMSM电机转速预估

1、内容简介 略 22-可以交流、咨询、答疑 2、内容说明 PMSM电机转速预估 PMSM电机转速预估 PMSM、转速估计&#xff0c;PID控制 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1AAJ_SlHseYpa5HAwMJlk1w 提取码&#xff1a;rvol

计算机视觉(OpenCV+TensorFlow)

计算机视觉&#xff08;OpenCVTensorFlow&#xff09; 文章目录 计算机视觉&#xff08;OpenCVTensorFlow&#xff09;前言3.图像金字塔3.1 高斯金字塔3.2 拉普拉斯金字塔 4.图像轮廓图像边缘和图像轮廓的区别检测图像绘制边缘 5.轮廓近似外接矩形外接圆 6. 模板匹配6.1 什么是…

LeetCode 1212 查询球队积分(PostgreSQL)

数据准备 Create table If Not Exists Teams (team_id int, team_name varchar(30)) Create table If Not Exists Matches (match_id int, host_team int, guest_team int, host_goals int, guest_goals int) Truncate table Teams insert into Teams (team_id, team_name) va…

关于pytorch安装成功后No module name ‘torch‘的解决方法

一、pytorch环境配置 1、Pytorch 的安装 &#xff08;1&#xff09;单击启动 Anaconda Prompt 创建虚拟房间 &#xff08;2&#xff09;输入py -0p查看当前python版本 或者这里不清楚自己 python 版本的可以 cmd 命令行输入 python 查询 &#xff08;3&#xff09;输入命令…

Jetson Nano部署YOLOv5与Tensorrtx加速

一、烧录镜像 1、Jetson Nano烧写系统镜像 Jetson Nano是一款形状、外接口类似于树莓派的嵌入式主板&#xff0c;搭载了四核Cortex-A57处理器&#xff0c;GPU则是拥有128个NVIDIA CUDA核心的NVIDIA Maxwell架构显卡&#xff0c;内存为4GB的LPDDR4&#xff0c;存储则为16GB eM…

『 Linux 』环境变量

文章目录 &#x1f680;什么是环境变量&#x1f680;&#x1f680;查看环境变量&#x1f680;&#x1f579;️和环境变量有关的命令&#x1f579;️ &#x1f680;PATH环境变量&#x1f680;&#x1f579;️设置PATH环境变量&#x1f579;️ &#x1f680;HOME环境变量&#x1…

vue 前端实现login页登陆 验证码

实现效果 // template <el-form :model"loginForm" :rules"fieldRules" ref"loginForm" label-position"left" label-width"0px" class"login-container"><span class"tool-bar"></sp…

解决VSCode按住Ctrl(or Command) 点击鼠标左键不跳转的问题(不能Go to Definition)

问题出现 往往在升级了VSCode以后&#xff0c;就会出现按住Ctrl&#xff08;or Command&#xff09; 点击鼠标左键不跳转的问题&#xff0c;这个问题很常见。 解决办法 1 进入VScode的首选项&#xff0c;选择设置 2 输入Go to definition&#xff0c;找到如下两个设置&#…

逸学java【初级菜鸟篇】11.多线程【多方位详解】

hi&#xff0c;我是逸尘&#xff0c;一起学java吧 目标&#xff08;任务驱动&#xff09; 本章没有任务目标&#xff0c;略述概述多线程一隅&#xff0c;全是精华。 线程 进程 在提到线程是什么之前我们还需要提到另一个名词 他就是进程 进程&#xff1a;是指一个内存中运…

如何删除mac苹果电脑上面的流氓软件?

在使用苹果电脑的过程中&#xff0c;有时候我们也会遇到一些不需要的软件。无论是因为不再需要&#xff0c;或者是为了释放磁盘空间&#xff0c;删除这些软件是很重要的。本文将为大家介绍怎样删除苹果电脑上的软件&#xff01; CleanMyMac X全新版下载如下: https://wm.make…

springboot + vue 智能物流管理系统

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…