哈希表Leetcode 1657. 确定两个字符串是否接近

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

  • 操作 1:交换任意两个 现有 字符。
    • 例如,ab cde -> ae cdb
  • 操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。
    • 例如,aa cabb->bb cbaa(所有 a 转化为 b ,而所有的 b 转换为 a

你可以根据需要对任意一个字符串多次使用这两种操作。

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

意思:两个字符串 出现字符种类一样,统计次数后,按次数排序后完全一样。

可以使用int cnt26来统计每个字母出现次数,首先判断种类是否一样,然后对cnt排序,判断排序后的次数是否一样。

cpp 复制代码
class Solution {
public:
    bool closeStrings(string word1, string word2) {
        int cnt1[26];
        int cnt2[26];
        memset(cnt1,0,sizeof(cnt1));
        memset(cnt2,0,sizeof(cnt2));
        for(auto c1:word1){
            cnt1[c1-'a']++;
         
        }
        for(auto c2:word2){
            cnt2[c2-'a']++;
        }
        for(int i=0;i<26;i++){
            if(cnt1[i]!=0&&cnt2[i]==0)return false;
            if(cnt1[i]==0&&cnt2[i]!=0)return false;
        }
        sort(cnt1,cnt1+26);
        sort(cnt2,cnt2+26);
        for(int i=0;i<26;i++){
            if(cnt1[i]!=cnt2[i])return false;
        }
        return true;

    }
};
相关推荐
2601_967760783 小时前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf
不会就选b4 小时前
算法日常・每日刷题--<贪心>7
数据结构·算法·leetcode
moonrailgun4 小时前
用 Node.js 复刻 Codex Astra 的终端星光
前端·javascript·算法
罗西的思考5 小时前
[Agent Memory / 强化学习] MemPO源码学习笔记 ---(1)--- 总体
人工智能·算法·机器学习
lvwangshu5 小时前
图论:LCA、树的直径、树的重心、二分图与 Tarjan 缩点
算法·图论
302wanger6 小时前
干与湿:AI 拿走脑力之后,人剩下什么
算法
计算机编程-吉哥7 小时前
脑肿瘤MRI智能识别系统:基于深度学习的像素级脑肿瘤语义分割平台【计算机毕业设计选题推荐】
人工智能·python·深度学习·算法·毕业设计·课程设计·大数据毕业设计选题推荐
用户204937554957 小时前
端侧语音部署踩坑:模型能跑不等于终端真的能用
后端·算法
shehuiyuelaiyuehao8 小时前
算法39,位运算,消失的两个数字
java·数据结构·算法
ZiLing8 小时前
2026 ROS 2 Lyrical 踩坑实录(一):编译与依赖——rosdep、现代 CMake 与 CMake 4.x
算法