Skip to content

Latest commit

 

History

History
80 lines (54 loc) · 1.5 KB

判定是否互为字符重排.md

File metadata and controls

80 lines (54 loc) · 1.5 KB

面试题 01.02. 判定是否互为字符重排

题目描述

给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

示例 1:

输入: s1 = "abc", s2 = "bca"
输出: true 
示例 2:

输入: s1 = "abc", s2 = "bad"
输出: false
说明:

0 <= len(s1) <= 100
0 <= len(s2) <= 100

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/check-permutation-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

用字典来对每个单词计数,如果每个单词出现的频率一样,就返回True,否则False

python代码

执行用时: 40 ms , 在所有 Python3 提交中击败了 58.99% 的用户 内存消耗: 14.9 MB , 在所有 Python3 提交中击败了 48.50% 的用户

class Solution:
    def CheckPermutation(self, s1: str, s2: str) -> bool:
        if(len(s1)!=len(s2)):
            return False
        dicts1={}
        dicts2={}
        
        for item in s1:
            if(item not in dicts1):
                dicts1[item]=1
            else:
                dicts1[item]+=1
        for item in s2:
            if(item not in dicts2):
                dicts2[item]=1
            else:
                dicts2[item]+=1


        for k,v in dicts1.items():
            if(k not in dicts2 or dicts1[k]!=dicts2[k]):
                return False
        
        return True