【力扣】242. 有效的字母异位词 ----- 排序 || 哈希表

  • 242 有效的字母异位词
  • 来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/valid-anagram
  • 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

示例 1:

输入: s = “anagram”, t = “nagaram”
输出: true

解题思路:(1)排序:两个排序后进行比较。(2)哈希表:遍历s,dic记录26个字母出现的次数,再遍历t,对应位置减一,若dic出现小于0,则两者不是字母异位词。
Notes: 【c++】sort(s.begin(), s.end());vector<int> dic(26,0);++ dic[s[i]-'a'];。【python 3 】s1 , t1= list(s), list(t) s1.sort() t1.sort()dic = [0]*26 for ch in s: dic[ord(ch)- ord('a')] +=1

// c++
class Solution {
public:
    bool isAnagram(string s, string t) {
        if (s.size()!= t.size()) return false;
        // 排序
        // sort(s.begin(), s.end());
        // sort(t.begin(), t.end());
        // if(s==t) return true;
        // return false;

        // 哈希表
        vector<int> dic(26,0); //初始化26个0
        for(int i=0; i<s.size();++i){
            ++ dic[s[i]-'a'];
        }
        for(int i=0;i<t.size();++i){
            -- dic[t[i]-'a'];
            if(dic[t[i]-'a']<0) return false;
        }
        return true;
    }
};
 # python 3
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s)!=len(t): return False
        # 排序
        s1 , t1= list(s), list(t)
        s1.sort()
        t1.sort()
        print(s1,t1)
        if s1==t1: return True
        return False
        # # 哈希
        # if len(s)!=len(t): return False
        # dic = [0]*26
        # for ch in s:
        #     dic[ord(ch)- ord('a')] +=1
        # for ch in t:
        #     dic[ord(ch)-ord('a')] -=1
        #     if dic[ord(ch)-ord('a')]<0: return False
        # return True 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值