leetcode with python:242. Valid Anagram

题目:

Given two strings s and t, return true if t is an anagram of s, and false otherwise.

An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

给定两个字串,判断一个字串是否由另一个字串重组而成

这题最简单可以这样解

class Solution:    def isAnagram(self, s: str, t: str) -> bool:        return sorted(s)==sorted(t)

透过sorted让字串用字元编码排序
若t真的是由s重组而成,两者排序后应该会一模一样
最后执行时间50ms(faster than 91.32%)

当然一般还是建立hash map去解

class Solution:    def isAnagram(self, s: str, t: str) -> bool:        if len(s)!=len(t):            return False        d1={}        d2={}                for i in range(len(s)):            if s[i] in d1:                d1[s[i]]=d1[s[i]]+1            else:                d1[s[i]]=1                            if t[i] in d2:                d2[t[i]]=d2[t[i]]+1            else:                d2[t[i]]=1                        for i in d1:            if i not in d2:                return False            else:                if d1[i]!=d2[i]:                    return False                        return True

为两字串个别建立一个dictionary,纪录各字元出现的次数
最后再比较两dictionary所记录的值是否相等
且确认一字串是否有另一字串没有的字元
最后执行时间48ms(faster than 93.25%)

那我们下题见


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章