LeetCode_859_python_亲密字符串
题目要求
给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。
示例:
示例1
输入: A = "ab", B = "ba"
输出: true
示例2
输入: A = "ab", B = "ab"
输出: false
示例3
输入: A = "aa", B = "aa"
输出: true
示例4
输入: A = "abab", B = "abab"
输出: true
示例5
输入: A = "aaaaaaabc", B = "aaaaaaacb"
输出: true
示例6
输入: A = "", B = "aa"
输出: false
题目分析
题目要求只能交换A、B字符串中的两个字母,相等的话为True,不等的话为False;
- 从示例2、3、4(A=B)中:当A、B相等时,有时为True,有时为False,可以看出为True的示例中有相同的字母,因此存在相同字母时,两者交换其实还是一样的;字母都不相同的话,无法交换即False
- 字符串A、B长度不一致时,直接False
- 当长度一致,A、B不一样时,遍历所有字母,当不一样时,将下标赋值给新的list中,新的list的长度下面分类讨论
*长度 = 2,说明有两个位置的元素不一样:若相互之间不同位置的元素一致则为True,否则为False
*长度 !=2,说明存在两个以上的元素不一致
下面将按照上述分析用Python写出详细代码:
代码
class Solution(object):def buddyStrings(self,A,B):a = [] # 存放不一致元素的下标if A == B: # AB相等时,'aa'和'aa'True,'ab'和'ab'Falseif len(A) == len(set(A)): # 字符串中没有相同元素时,如'ab'和'ab',则为Falsereturn Falseelse: # 否则如:'aa'和'aa'、"abab"和"abab",为Truereturn Trueif len(A) != len(B): # 长度不一样时,直接Falsereturn Falsefor i in range(len(A)): # 当长度一致,字符串不相等时,如"ab"和"ba",遍历所有元素if A[i] != B[i]: a.append(i) # 将不一致的元素下标放入a中if len(a) != 2: # a的长度不等于2时,说明有超过两个元素不一样,Falsereturn False if A[a[0]] == B[a[1]] and A[a[1]] == B[a[0]]: # a的长度为2时,相互之间不同位置的元素一致时,Truereturn Trueelse: # 不一致时,Falsereturn False
本人小白一个,大神有更高效的算法,望留言!!!
持续更新中。。。。。
LeetCode_859_python_亲密字符串相关推荐
- 【解题报告】Leecode 859. 亲密字符串——Leecode每日一题系列
今天是坚持每日一题打卡的第二十四天 题目链接:https://leetcode-cn.com/problems/buddy-strings/ 题解汇总:https://zhanglong.blog.c ...
- 859. 亲密字符串
859. 亲密字符串 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true :否则返回 false . 示例 1: 输入: A ...
- python亲密度_859. 亲密字符串(Python)
题目 难度:★★☆☆☆ 类型:字符串 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true :否则返回 false . 提示 0 ...
- [Swift]LeetCode859. 亲密字符串 | Buddy Strings
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode 859. 亲密字符串
1. 题目 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true :否则返回 false . 示例 1: 输入: A = &qu ...
- leetcode 859 亲密字符串
https://leetcode-cn.com/problems/buddy-strings/ 题目 给你两个字符串s和goal,只要我们可以通过交换s中的两个字母得到与goal相等的结果,就返回tr ...
- C++算法学习(力扣:859. 亲密字符串)
给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true :否则返回 false . 交换字母的定义是取两个下标 i 和 j (下标 ...
- LeetCode_字符串类
文章目录 3.无重复字符的最长子串 415.字符串相加 345.反转字符串中的元音字母 14.最长公共前缀 28.实现strStr() 58.最后一个单词的长度 67.二进制求和 38.外观数列 12 ...
- C#LeetCode刷题之#859-亲密字符串(Buddy Strings)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3973 访问. 给定两个由小写字母构成的字符串 A 和 B ,只要 ...
- C#LeetCode刷题-字符串
字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) 15.3% 中 ...
最新文章
- 扩展LLVM:添加指令、内部函数、类型等
- 解密迈向量产的百度Apollo自动驾驶技术与产品
- boost::detail模块fwd容器的测试程序
- last modified php,lastModified属性_用法示例-javascript词典-js编程词典-php中文网
- 程序员特有的9个坏习惯
- php 取前一天时间戳,php获取时间今日明天昨天时间戳
- 细数Python三大“罪”!为什么编程能力比我好10倍的人都在夸它?
- ESXi 5.1 安装 Mac OSX Lion 10.7
- filters.revealTrans.Transition用法
- 数据库表关联关系的基础知识
- SASS用法指南(转)
- 【uniapp滚动穿透】 在u-modal中使用scroll-view底下主页面会跟随滚动
- STM32 阿里云MQTT esp8266 AT命令
- BP神经网络求解异或算法
- 码流格式: Annex-B, AVCC(H.264)与HVCC(H.265), extradata详解
- HarmonyOS系统中内核实现NFC无线通信的方法
- 【Pytorch】AWSnet论文解读与实验复现
- Part III.S1. 基于离差最大化的直觉模糊多属性决策方法
- 网络安全--跑PIN找回WiFi密码(详细教程)
- vue当中addRoutes动态添加路由白屏解决和next(),next(“/“)的一些区别
热门文章
- 德银病危:心比天高,却落下黄粱一梦
- Redis: 为行情数据库设计键值
- 阿里云-高性能计算招聘
- c语言怎样用vc绘图,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
- 【锂电池健康状态预测】基于matlab BP神经网络锂电池健康状态预测【含Matlab源码 688期】
- 【脑电信号】基于matlab小波变换脑电信号特征提取【含Matlab源码 511期】
- 【三维路径规划】基于matlab改进差分算法多无人机协同三维路径规划【含Matlab源码 169期】
- 字符串匹配代码C语言,KMP字符串匹配算法C语言实现
- 坦克位置伺服系统分析与设计_伺服电机噪音及不稳定分析
- centos里安装mysql有34_centos7安装mysql5.6.34遇到中的问题