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

DaLongggggg 等级 598 0 0

挑战介绍

实现一个算法来识别一个字符串 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。

class Permutations(object):

    def is_permutation(self, str1, str2):
        if str1 is None or str2 is None:
            return False
        return sorted(str1) == sorted(str2)

c sorted() 函数对所有可迭代的对象进行排序操作 python百题大冲关-确定字符串是否是另一个的排列

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

菜鸟中两个例子

>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, cmp=lambda x,y:cmp(x[1],y[1]))   # 利用cmp函数
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
>>> sorted(L, key=lambda x:x[1])               # 利用key
[('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

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

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

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

收藏
评论区

相关推荐

Python小应用 百度接口实现图片文字识别,并打包成安装包软件
本文给大家分享的主题是用百度的接口实现图片的文字识别。 1.环境和配置要求 整体是用Python实现,所需要使用的第三方库包括aip、PIL、keyboard、pyinstaller,如未安装,可在CMD中使用pip install BaiduAIP/pillow/keyboard/pyinstaller指令安装。 百度接口 打开https://
Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。 安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
python百题大冲关-确定字符串是否是另一个的排列
挑战介绍 实现一个算法来识别一个字符串 str2 是否是另一个字符串 str1 的排列。排列的解释如下: 如果将 str1 的字符拆分开,重新排列后再拼接起来,能够得到 str2 ,那么就说字符串 str2 是字符串 str1 的排列。 本次挑战中,你需要在 permutation.py 文件中补充函数 is_permutation 的空缺部分
python百题大冲关-确定字符串是否是另一个的旋转
挑战介绍 实现一个算法来识别一个字符串 s2 是否是另一个字符串 s1 的旋转。旋转的解释如下: 如果将 s1 从某个位置断开,拆分成两个字符串(可能有一个为空字符串),再将这两个字符串调换顺序后拼接起来,能够得到 s2 ,那么说字符串 s2 是字符串 s1 的旋转。 本次挑战中,你需要在 rotation.py 文件中补充函数 is_subst
python百题大冲关-压缩字符串
挑战介绍 实现一个算法来压缩一个字符串。压缩的要求如下: 需要判断压缩能不能节省空间,仅在压缩后字符串比原字符串长度更短时进行压缩。 压缩的格式是将连续相同字符替换为字符数字形式,例如 "AAABCCDDDD" 变为 "A3BC2D4"。 本次挑战中,你需要在 compress_str.py 文件中补充函数 compress 的空缺部分
知乎从Python转为Go,是不是代表Go比Python好?
众所周知,知乎早在几年前就将推荐系统从 Python 转为了 Go。于是乎,一部分人就说 Go 比 Python 好,Go 和 Python 两大社区的相关开发人员为此也争论过不少,似乎,谁也没完全说服谁。 知乎从Python转为Go,是不是代表Go比Python好?我认为,各有优点,谁也取代不了谁,会长期共存! “由 Python 语言转向 Go 语言
python百题大冲关-Fizz Buzz 经典问题
挑战介绍 给定一个整数 num,从 1 到 num 按照下面的规则返回每个数: 如果这个数被 3 整除,返回 'Fizz'。 如果这个数被 5 整除,返回 'Buzz'。 如果这个数能同时被 3 和 5 整除,返回 'FizzBuzz'。 如果这个数既不能被 3 也不能被 5 整除,返回这个数字的字符串格式。 挑战内容
Python编程基础(快速入门必看
Python编程基础一、Python语言基本语法 Python是一
python文件的第一行 #!/usr/bin/python3 是什么意思?
python文件的第一行代码通常在脚本语言的第一行会看到: !/usr/bin/env python或 !/usr/bin/python 首先要确定的一点是它不是注释。这两句话的目的都是指出你的python文件用什么可执行程序去运行它。1. !/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释
全网最全python学习路线图,让学习不迷路
学习Python有一段时间了,最近也是在不断的整理Python相关的基础知识和学习一些新的知识,想来分享给大家。我刚开始接触Python时,和大多数初学者一样不知道从那里开始学习python,我也在网上找了许多python相关的资料来学习,但是资料多也不见得就好,因为不知道从哪里开始下手,走了许多弯路。后面我就整理了一套对初学者来说学习python能很快上手
怎么操作能使Python代码运行起来速度飞快?
Python是开发人员当中流行的编程语言之一。它应用广泛,无论是Web开发还是机器学习。Python大受欢迎的原因有很多,比如社区支持、出色的库、广泛用于机器学习和大数据以及简单的语法。尽管有这么多优点,Python还是有一个缺点:速度慢。作为一种解释性语言,Python的速度不如其他编程语言。不过,我们可以用几个技巧来克服这个问题。本文将分享几个Pytho
浅析常用的Python Web的几大框架
在各种语言平台中,python涌现的web框架恐怕是最多的,是一个百花齐放的世界,各种microframework、framework不可胜数;猜想原因应该是在python中构造框架十分简单,使得轮子不断被发明。所 以在Python社区总有关于Python框架孰优孰劣的话题。下面就给大家介绍一下python的几大框架: Django Django 应该是最出
手把手教你使用Flask搭建ES搜索引擎(预备篇)
/1 前言/ Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 那么如何实现 Elasticsearch和 Python 的对接成为我们所关心的问题了 (怎么什么都要和 Python 关联啊)。 /2 Python 交互/ 所以,Python 也就提供了可以对接 Elasti
盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
大家好,我是Python进阶者。今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高。一、前言相信有些小伙伴学习Python有一段时日,但是又不知道自己的Python基础学的如何,这个时候就需要一款神器来检测一下自己的Python基础了。要想检测自己的Python功力最直观的方法当然是做题了,至于做什么题了我们就不得而知了,
手把手教你4种方法用Python批量实现多Excel多Sheet合并
一、前言大家好,我是崔艳飞。前两天给大家分享了Python自动化文章:,而后在Python进阶交流群里边有读者遇到一个问题,他有很多个Excel表格,他需要对这些Excel文件进行合并。诚然,一个一个打开复制粘贴固然可行,但是该方法费时费力,还容易出错,几个文件还可以手动处理,要是几十个甚至上百个,你就抓瞎了,不过这问题对Python来说,so easy,一