Cracking the Coding Interview-1.2

第六版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)

在手机上阅读或分享本文请扫描以下二维码:
By @Zhengyi Yang in
Tags : #cracking the coding interview, #python, #permutation, #sorting, #counter, #string,

Comments

评论功能已关闭。