第六版Cracking the Coding Interview题目1.2,题目如下:
Check Permutation: Given two strings, write a method to decide if one is a permutation of the other.
这道题难度较小,第一种思路是先排序再比较。其中可以考虑如果两个字符串长度不同则必然不符合要求。在大部分Python实现中,len()
函数复杂度为$O(1)$,可以把长度相等作为第一个条件,这样当长度不等时便会直接返回false
不会判断之后的条件。Python实现如下:
def permutationString(str1,str2):
return len(str1)==len(str2) and sorted(str1)==sorted(str2)
第二种思路则是记录两个字符串中每个字符出现的次数,然后比较是否相同。在Python中直接用Counter实现即可:
from collections import Counter
def permutationString(str1,str2):
return len(str1)==len(str2) and Counter(str1)==Counter(str2)
在手机上阅读或分享本文请扫描以下二维码:
Comments