python百题大冲关-确定字符串是否是另一个的排列

挑战介绍

实现一个算法来识别一个字符串 str2 是否是另一个字符串 str1 的排列。排列的解释如下:

如果将 str1 的字符拆分开,重新排列后再拼接起来,能够得到 str2 ,那么就说字符串 str2 是字符串 str1 的排列。

本次挑战中,你需要在 permutation.py 文件中补充函数 is_permutation 的空缺部分。

is_permutation 函数接受两个参数,str1,str2 用于指定传入的两个字符串; is_permutation 函数输出一个布尔值,即 True 或者 False。 你需要补充 is_permutation 函数,使其可以识别 str2 字符串是否是 str1 字符串的排列。要求如下:

如果 str2 字符串是 str1 字符串的排列,则返回 True; 如果 str2 字符串不是 str1 字符串的排列,则返回 False; 如果传入的字符串有 None,或者有空字符串,则返回 False。

1class Permutations(object): 2 3 def is_permutation(self, str1, str2): 4 if str1 is None or str2 is None: 5 return False 6 return sorted(str1) == sorted(str2)

c sorted() 函数对所有可迭代的对象进行排序操作 捕获

cmp(x,y)比较xy 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

菜鸟中两个例子

1>>> L=[('b',2),('a',1),('c',3),('d',4)] 2>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1])) # 利用cmp函数 3[('a', 1), ('b', 2), ('c', 3), ('d', 4)] 4>>> sorted(L, key=lambda x:x[1]) # 利用key 5[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

利用cmp函数和key时通过写入一个lambda表达式重新定义函数 可以参考Python的sort函数和sorted、lambda和cmp cmp(x[1],y[1])通过对比xy进行排序 字符替换ascii值对比 key中通过一个参数对比即a或1

1 sorted(students, key=lambda s: s[2], reverse=True) # 按降序 2[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]

s:s[2]相当于定义函数 def 函数(s): return s[2]

判断str1 str2顺序 通过sorted函数比较返回

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

一篇文章带你了解JavaScript日期

日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

python百题大冲关-确定字符串是否是另一个的旋转

挑战介绍实现一个算法来识别一个字符串s2是否是另一个字符串s1的旋转。旋转的解释如下:如果将s1从某个位置断开,拆分成两个字符串(可能有一个为空字符串),再将这两个字符串调换顺序后拼接起来,能够得到s2,那么说字符串s2是字符串s1的旋转。本次挑战中,你需要在rotation.py文件中补充函数is_subst