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

LeetCode75——Day22

文章目录

    • 一、题目
    • 二、题解

一、题目

1657. Determine if Two Strings Are Close

Two strings are considered close if you can attain one from the other using the following operations:

Operation 1: Swap any two existing characters.
For example, abcde -> aecdb
Operation 2: Transform every occurrence of one existing character into another existing character, and do the same with the other character.
For example, aacabb -> bbcbaa (all a’s turn into b’s, and all b’s turn into a’s)
You can use the operations on either string as many times as necessary.

Given two strings, word1 and word2, return true if word1 and word2 are close, and false otherwise.

Example 1:

Input: word1 = “abc”, word2 = “bca”
Output: true
Explanation: You can attain word2 from word1 in 2 operations.
Apply Operation 1: “abc” -> “acb”
Apply Operation 1: “acb” -> “bca”
Example 2:

Input: word1 = “a”, word2 = “aa”
Output: false
Explanation: It is impossible to attain word2 from word1, or vice versa, in any number of operations.
Example 3:

Input: word1 = “cabbba”, word2 = “abbccc”
Output: true
Explanation: You can attain word2 from word1 in 3 operations.
Apply Operation 1: “cabbba” -> “caabbb”
Apply Operation 2: “caabbb” -> “baaccc”
Apply Operation 2: “baaccc” -> “abbccc”

Constraints:

1 <= word1.length, word2.length <= 105
word1 and word2 contain only lowercase English letters.

题目来源: leetcode

二、题解

当两个字符串,所拥有的共同字符类型完全相同,且字母出现数目以及出现该数目的个数完全相同时,这两个字符串是close的。

class Solution {
public:bool closeStrings(string word1, string word2) {int n1 = word1.length();int n2 = word2.length();vector<int> map1(26,0);vector<int> map2(26,0);vector<int> times(max(n1,n2) + 1,0);for(int i = 0;i < n1;i++) map1[word1[i] - 'a']++;for(int i = 0;i < n2;i++) map2[word2[i] - 'a']++;//如果有字母不在交集中for(int i = 0;i < 26;i++){if((map1[i] == 0 && map2[i] != 0) || (map1[i] != 0 && map2[i] == 0)) return false;}//统计出现次数的个数for(int i = 0;i < 26;i++){if(map1[i] != 0) {times[map1[i]]++;   }}for(int i = 0;i < 26;i++){if(map2[i] != 0) times[map2[i]]--;if(times[map2[i]] < 0) return false;}return true;}
};
http://www.lryc.cn/news/213593.html

相关文章:

  • 【SOC基础】单片机学习案例汇总 Part1:电机驱动、点亮LED
  • 【HTML】HTML基础知识扫盲
  • 【Mybatis-Plus】常见的@table类注解
  • Android WMS——操作View(七)
  • 算法__数组排序_冒泡排序直接选择排序快速排序
  • ByteBuffer的原理和使用详解
  • 【MySql】10- 实践篇(八)
  • 【三方登录-Apple】iOS 苹果授权登录(sign in with Apple)之开发者配置一
  • 可视化 | 数据可视化降维算法梳理
  • 分布式:一文吃透分布式事务和seata事务
  • Java架构师前沿技术
  • OpenCV ycrcb颜色空间
  • SPSS两独立样本t检验
  • 视频格式高效转换:MP4视频批量转MKV格式的方法
  • 0028Java程序设计-智能农场监控报警系统设计与实现
  • 数据结构和算法——用C语言实现所有图状结构及相关算法
  • JavaScript一些数据类型介绍
  • 正向代理和反向代理与负载均衡
  • 制造执行系统(MES)的核心功能是什么?
  • uniapp如何使用mumu模拟器
  • 【MATLAB源码-第64期】matlab基于DWA算法的机器人局部路径规划包含动态障碍物和静态障碍物。
  • 阿里云国际版和国内版的区别是什么,为什么很多人喜欢选择国际版?
  • 监听redis过期业务处理
  • 计算机网络与技术——数据链路层
  • UE5 Android下载zip文件并解压缩到指定位置
  • CSS3盒模型
  • VINS-Mono-VIO初始化 (五:视觉惯性对齐求解)
  • 详解Vue——的双向数据绑定是如何实现的?
  • 正则表达式引擎比较(翻译自:A comparison of regex engines)
  • 后端Linux软件安装大全[JDK、Tomcat、MySQL、Irzsz、Git、Maven、Redis、Nginx...持续更新中]