python百题大冲关-找到给定字符串中的不同字符

DaLongggggg 等级 574 0 0

请大佬指正纠错!!!!

挑战介绍

在不考虑字符排列的条件下,对于相差只有一个字符的两个字符串,实现一个算法来识别相差的那个字符。要求如下:

当传入的字符串为 'aad' 和 'ad' 时,结果为 'a'。
当传入的字符串为 'aaabccdd' 和 'abdcacade' 时,结果为 'e'

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

find_diff 函数接受两个参数,str1,str2 用于指定传入的相差只有一个字符的两个字符串;
find_diff 函数输出只有一个字符的字符串。

你需要补充 find_diff 函数,使 find_diff 函数可以识别传入的 str1,str2 之间相差的那个字符。要求如下:

对于传入的两个字符串,返回它们之间相差的那个字符;
如果传入的字符串有 None ,需要使用 raise 语句显示 TypeError。
class Solution(object):

    def find_diff(self, str1, str2):
        if str1 is None or str2 is None:
            raise TypeError('str1 or str2 cannot be None')
        result = 0
        for char in str1:
            result ^= ord(char)
        for char in str2:
            result ^= ord(char)
        return chr(result)

需要返回相差的字符 便通过异或^来筛选 异或相同为0 不同为1 同时在两个字符串中循环遍历字符 相同的字符返回零 不同的字符返回ASCII码值 最后返回 再由chr转回字符

异或“ ^ =”在Python中是什么意思? raise是一个抛出指定异常Python学习:raise语句 chr()是把数字转成对应字符 ord()是把字符转成对应ASCII码

收藏
评论区

相关推荐

Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。 安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
python中的异常处理
异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常种类   在python中不同的异常可以用不同的类型(python
1. 这才是 Python 学习的正确起手姿势,滚雪球学 Python
在博客上,我写了很多关于 Python 的文章,很多朋友可能觉得橡皮擦应该是一个 Python 开发人员或者一个技术开发人员,但很遗憾的告诉大家,橡皮擦恰好是很多公司中开发人员的对立面【产品经理】。但我是一个相当懂技术人的产品经理。 一、Python 初次接触,Python 变量与基本运算 1.1 滚雪球学 Python 课程前置导语 从本篇博
python百题大冲关-反转字符串中的字符
挑战介绍 实现一个算法来实现反转字符数组的功能。反转的要求如下: 将字符数组的字符进行反转,例如 'b', ' ', 'a', 'r' 变成 'r', 'a', ' ', 'b'。 将字符数组替换为反转后的数组。 本次挑战中,你需要在 reverse_chars.py 文件中补充函数 reverse 的空缺部分。 re
Python Sanic 高并发服务开发指南
技术基础 AsyncIO Python 3.4 开始引入 AsyncIO(https://docs.python.org/3/library/asyncio.html) 模块,使得 Python 也支持异步 IO。3.5 版本里添加了 async/await 关键字,使得异步 IO 代码编写更加方便。3.6 和 3.7 版本继续进行了完善
python文件的第一行 #!/usr/bin/python3 是什么意思?
python文件的第一行代码通常在脚本语言的第一行会看到: !/usr/bin/env python或 !/usr/bin/python 首先要确定的一点是它不是注释。这两句话的目的都是指出你的python文件用什么可执行程序去运行它。1. !/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释
python的学习难?你的方法不对罢了,看看我的。
1、选择Python版本对于使用python的人来说,python的版本就是我们的工作环境,因此,在学习之前需要考虑好学习哪个版本,python2和python3的版本不同,会存在一些差异,虽说不大,但直接学习python3 的话相对来说会好一点,而且跑一趟还能3相对来说对零基础的小白来说更加的友好,容易上手。2、学习Python基础知识Python 是一个
你写的Python代码规范吗?
总第141篇/张俊红1.什么是PEP8PEP 是 Python Enhancement Proposals 的缩写,直译过来就是「Python增强建议书」也可叫做「Python改进建议书」,说的直白点就是Python相关的一些文档,主要用来传递某些信息,这些信息包括某个通知亦或是某个新的规范。关于更深层次的概念,大家有兴趣的可以自行去了解。PEP 后面的数字
怎么操作能使Python代码运行起来速度飞快?
Python是开发人员当中流行的编程语言之一。它应用广泛,无论是Web开发还是机器学习。Python大受欢迎的原因有很多,比如社区支持、出色的库、广泛用于机器学习和大数据以及简单的语法。尽管有这么多优点,Python还是有一个缺点:速度慢。作为一种解释性语言,Python的速度不如其他编程语言。不过,我们可以用几个技巧来克服这个问题。本文将分享几个Pytho
浅析常用的Python Web的几大框架
在各种语言平台中,python涌现的web框架恐怕是最多的,是一个百花齐放的世界,各种microframework、framework不可胜数;猜想原因应该是在python中构造框架十分简单,使得轮子不断被发明。所 以在Python社区总有关于Python框架孰优孰劣的话题。下面就给大家介绍一下python的几大框架: Django Django 应该是最出
一篇文章带你弄懂Python异常简介和案例分析
点击上方“Go语言进阶学习”,进行关注回复“Go语言”即可获赠从入门到进阶共10本电子书今日鸡汤似此星辰非昨夜,为谁风露立中宵。大家好,我是Go进阶者,今天给大家分享一些Python基础 (异常),一起来看看吧一、异常简介当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常"。 二、案例分析 打开一个不存在的
盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
大家好,我是Python进阶者。今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高。一、前言相信有些小伙伴学习Python有一段时日,但是又不知道自己的Python基础学的如何,这个时候就需要一款神器来检测一下自己的Python基础了。要想检测自己的Python功力最直观的方法当然是做题了,至于做什么题了我们就不得而知了,
一篇文章带你弄懂Python异常传递和自定义异常
大家好,我是Go进阶者,今天给大家分享一些Python基础 (异常传递和自定义异常),上篇文章有说到:,这篇文章一起来看看异常其他知识吧一、异常的传递 1\. try嵌套中import timetry: f open('test.txt') try: while True: content f.readli
手把手教你4种方法用Python批量实现多Excel多Sheet合并
一、前言大家好,我是崔艳飞。前两天给大家分享了Python自动化文章:,而后在Python进阶交流群里边有读者遇到一个问题,他有很多个Excel表格,他需要对这些Excel文件进行合并。诚然,一个一个打开复制粘贴固然可行,但是该方法费时费力,还容易出错,几个文件还可以手动处理,要是几十个甚至上百个,你就抓瞎了,不过这问题对Python来说,so easy,一
一行代码将Python程序转换为图形界面应用
Gooey项目支持用一行代码将(几乎)任何Python 2或3控制台程序转换为GUI应用程序。1.快速开始开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章: 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:,它内置了Python和pip.此外,推荐大家用VSCode编辑器,它有许多的优点:。