网站制作一薇,汶上网站建设哪家便宜,vps 安装wordpress,做网站需要什么学专业#x1f680; 算法题 #x1f680; #x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 #x1f340; #x1f332; 越难的东西,越要努力坚持#xff0c;因为它具有很高的价值#xff0c;算法就是这样✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;… 算法题 算法刷题专栏 | 面试必备算法 | 面试高频算法 越难的东西,越要努力坚持因为它具有很高的价值算法就是这样✨ 作者简介硕风和炜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还是操作2最后想让字符串1变换为字符串2那么字符串1和字符串2中出现的字符都是相同的同时次数也都是相同的【注意不一定是每个字符出现的次数相同排序后判断俩个词频表是否相等即可】。有了上面的求解思路接下来通过具体的代码来实现。实现代码如下所示 实现代码
class Solution {public boolean closeStrings(String word1, String word2) {int nword1.length(),mword2.length();if(n!m) return false;int[] cnt1new int[26];int[] cnt2new int[26];for(int i0;in;i){cnt1[word1.charAt(i)-a];cnt2[word2.charAt(i)-a];}// 出现的字母必须都一样for(int i0;i26;i){if((cnt1[i]0)!(cnt2[i]0)) return false;}Arrays.sort(cnt1);Arrays.sort(cnt2);return Arrays.equals(cnt1,cnt2);}
}运行结果 共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉
相关文章: