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

简介: 1657.确定两个字符串是否接近

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

  • 操作 1:交换任意两个 现有 字符。
  • 例如,abcde -> aecdb
  • 操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。
  • 例如,aacabb -> bbcbaa(所有 a 转化为 b ,而所有的 b 转换为 a )

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

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

解题思路:两个字符串接近的充分必要条件为:

1.两个字符串出现的字符集S1和S2相等,即S1=S2.

2.分别将两个字符串的字符出现次数数组f1 和 f2 进行排序后,两个数组从小到大——相等。

class Solution{
    public boolean closeStrings(String word1,String word2){
        int[] count1=new int[26],count2=new int[26];
        for(char c:word1.toCharArray()){
            count1[c-'a']++;        
        }    
        for(char c:word2.toCharArray()){
            count2[c-'a']++;        
        }
        for(int i=0;i<26;i++){
            if(count1[i]>0 && count2[i]==0 || count1[i]==0 && count2[i]>0){
                return false;            
            }        
        }
        Arrays.sort(count1);
        Arrays.sort(count2);
        return Arrays.equals(count1,count2);
    }
}


冷色系456
+关注
目录
打赏
0
0
0
0
9
分享
相关文章
PolarDB开源项目未来展望:技术趋势与社区发展方向
随着云计算的飞速发展,作为核心组件的分布式数据库作用愈发关键。阿里云的PolarDB,一款云原生分布式数据库,自开源后备受瞩目。未来,PolarDB将深化云原生特性,强化容器化支持;发展HTAP能力,融合事务处理与实时分析;运用AI技术实现智能运维。同时,加强全球开源社区合作,拓展多行业应用场景,并构建全面的开发者生态系统,旨在成为领先的云原生数据库解决方案。
196 4
HarmonyOS NEXT 实战系列05-案例回关粉丝
本文介绍了一个基于HarmonyOS的组件化设计案例,通过提取 `FansItemComp` 组件实现复用,使用 `@Prop` 动态接收数据渲染UI。示例中包含关注与互关功能:父组件 `TestPage` 提供粉丝列表数据,封装 `getFansAndFollowCount` 方法统计互关人数;子组件通过按钮交互更新关注状态,并利用 `onChange` 回调通知父组件同步数据变化。代码结构清晰,展示了组件间通信及动态渲染的实现方式。
基于代理和单例模式的 electron 多窗口管理方案
基于代理和单例模式的 electron 多窗口管理方案
827 0
运用堆结构来解决Top-K问题
运用堆结构来解决Top-K问题
105 4
二叉树的基本概念以及基本操作
二叉树的基本概念以及基本操作
342 2
基于autojs7的KS极速版辅助第二次更新
基于autojs7的KS极速版辅助第二次更新
90 1
ConcurrentLinkedQueue的源码解析(基于JDK1.8)
ConcurrentLinkedQueue的源码解析(基于JDK1.8) ConcurrentLinkedQueue是Java集合框架中的一种线程安全的队列,它是通过CAS(Compare and Swap)算法实现的并发队列。在并发场景下,ConcurrentLinkedQueue能够保证队列的线程安全性,同时性能也很不错。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问