leetcode 242 两个字符串包含的字符是否完全相同

本文介绍了两种用于判断两个字符串是否为字母异位词的有效方法。方法一利用长度为26的整型数组统计并对比两个字符串中各字符出现次数;方法二通过排序两字符串再比较其相等性来实现。适用于小写英文字母组成的字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

方法一:
字符串只包含小写字符,总共有 26 个小写字符。可以用 Hash Table 来映射字符与出现次数,因为键值范围很小,因此可以使用长度为 26 的整型数组对字符串出现的字符进行统计,比较两个字符串出现的字符数量是否相同。

public boolean isAnagram(String s,String t){
    int [] cnt=new int[26];
    for(int i=0;i<s.length();i++) cnts[s.cahrAt(i)-'a']++;
    for(int i=0;i<t.length();i++) cnts[t.charAt(i)-'a']--;
    for(int i=0;i<26;i++)if(cnts[i]!=0)return false;
    return true;
}

方法二:

class Soultion{
    public boolean isAnagram(String s, String t){
        char[] ss=s.toCharArray();
        char[] ts=s.toCharArray();
        Arrays.sort(ss);
        Arrays.sort(ts);
        return Arrays.equals(ss,ts);
        
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值