如何理解Python中LeetCode的亲密字符串
这篇文章将为大家详细讲解有关如何理解Python中LeetCode的亲密字符串,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联建站服务项目包括华州网站建设、华州网站制作、华州网页制作以及华州网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,华州网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到华州省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
Title: 给定两个由小写字母构成的字符串A和B,只要我们可以通过交换A中的两个字母得到与B相等的结果,就返回true;否则返回false。 Input: A = "ab", B = "ba" Output: true From: LeetCode
分析
1. A不等于B时:
I. 长度必须保持一致
II. 组成元素保持一致
III. 两者之间的差异值必须为2(ab、ba)
这里利用正则表达式逐一查询B中相同位置的元素是否与A相同,返回一个由True、False组成的列表,False表示相同位置元素不一致,即有一个差异值,这里只要保证False数量为2即可
2. A等于B时:
I. 不为空
II. 字符串内耽搁元素重复数量至少为2 (aa、aba、abab)
这里先将A去重之后再查询其中的元素在初始字符串中出现的次数,返回由次数构成的列表,只要列表元素最大值大于等于2即可
代码:
#!/usr/bin/env python # -*- coding:utf-8 -*- ''' @author: maya @software: Pycharm @file: intimateStrings.py @time: 2019/7/24 8:31 @desc: ''' ''' Title: 给定两个由小写字母构成的字符串A和B,只要我们可以通过交换A中的两个字母得到与B相等的结果,就返回true;否则返回false。 Input: A = "ab", B = "ba" Output: true From: LeetCode ''' import re class Solution(object): def buddyStrings(self, A, B): """ :type A: str :type B: str :rtype: bool """ equal_result = [True if re.search(data, B[A.index(data)]) else False for data in A] num_result = [len(re.findall(data, A)) for data in list(set(A))] return True if (A != B and (len(A) == len(B)) and (set(A) == set(B) and equal_result.count(False) == 2)) \ or (A == B != "" and max(num_result) >= 2) else False
关于如何理解Python中LeetCode的亲密字符串就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
当前名称:如何理解Python中LeetCode的亲密字符串
URL分享:http://pwwzsj.com/article/gejshd.html