leetcode 859. 亲密字符串

LeetCode每日一练给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 给定两个由小写字母构成的字符串 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 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。

示例 1:

输入: A = "ab", B = "ba"
输出: true

示例 2:

输入: A = "ab", B = "ab"
输出: false

示例 3:

输入: A = "aa", B = "aa"
输出: true

解题思路:

考虑到下面几种情况:

1.两个数组长度不一致,返回false;

2.两个数组长度一致且==的情况下,若相等,则去重,去重长度不变的,说明交换顺序也不能让两个数组相同,所以返回false

3.若去重后长度变化的,返回true.

4.遍历数组,利用数组记录两数组不同的地方,若记录数组长度超过2,则返回false;

5.长度为2的情况下,判断前后的数据是否一样就可以了。

代码:

/**
 * @param {string} A
 * @param {string} B
 * @return {boolean}
 */
var buddyStrings = function(A, B) {
    var a1=new Set(A);
    var b1=new Set(B);
    var a2=Array.from(a1);
    var b2=Array.from(b1);
    if(A==B&&a2.length==A.length){
        return false;
    }
    if(A==B&&a2.length!=A.length){
        return true;        
    }
    
    if(A.length!=B.length)  return false;
    var b=[];
    for(var i=0;i<A.length;i++){
        if(A[i]!=B[i])   b.push(i)
    }
    if(b.length!=2){
        return false;
    }
    if(A[b[0]]==B[b[1]]&&A[b[1]]==B[b[0]])  return true;
    else return false;
};

 

亲密字符串——力扣859 时间复杂度:O(N),空间复杂度:O(1) 阅读详情

相关推荐

CSP-J/S复赛文件组织与freopen读写全攻略,避免爆零

在信息学竞赛的上机考试中,代码能力固然重要,但文件组织与输入输出重定向往往是决定成败的关键细节。许多选手习惯在线评测环境,对本地文件命名、目录层级和读写方式缺乏系统认知,导致算法正确却因文件名拼写错误或freopen使用不当而遗憾失分。理解评测系统的工作原理,掌握从建立准考证号目录到规范命名源文件,再到使用freopen进行文件流重定向的标准流程,是每位参赛者的必备技能。这种工程化习惯不仅适用于CSP-J/S复赛,也是未来参加NOI等更高水平竞赛的基础。本文从文件组织的底层逻辑出发,结合实战案例,系统讲解考

weixin_32466193的博客 595

【leetcode-python】859. 亲密字符串

给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 交换字母的定义是取两个下标 i 和 j (下标从 0 开始),只要 i!=j 就交换 A[i] 和 A[j] 处的字符。例如,在 "abcd" 中交换下标 0 和下标 2 的元素可以生成 "cbad" 。 示例 1: 输入: A = "ab", B = "ba" 输出: true 解释: 你可以交换 A[0] = 'a' 和 A[1] = 'b

hbk5241的博客 479

基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制与龙伯格观测器设计​

本文介绍了基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制方法,重点讲解了龙伯格观测器的设计与实现。主要内容包括:1)系统架构与数学推导,通过静止坐标系状态方程和极点配置构建观测器;2)Simulink建模步骤,从电机模型搭建到观测器核心代码实现;3)仿真结果对比分析,显示龙伯格观测器相比滑模观测器具有更好的平滑性和抗噪能力;4)工程部署建议,包括参数在线辨识、低速补偿策略和代码生成优化。该方法实现了全速域无感运行,稳态转速误差小于1%,为低成本高可靠性电机控制提供了有效解决方案。

amy_mhd的博客 162

LeetCode___859. 亲密字符串

给定两个由小写字母构成的字符串A和B,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回true;否则返回 false 。 示例 1: 输入: A = "ab", B = "ba" 输出: true 示例 2: 输入: A = "ab", B = "ab" 输出: false 示例 3: 输入: A = "aa", B = "aa" 输出: true ...

有木的博客 342

MobaXterm详细使用教程

当然MobaXterm的功能远不止这些,但这些是最基本,最常用的,因此先拿出来讲。点击确定后,输入密码(输入密码时并不会显示,只管输入后按确定即可,第一次登陆成功后会提示保存密码,一般选择同意),就可以连接上虚拟机了。(2) 我们可以直接apt-get安装vim等常用功能(或者官网下载插件),实现在windows下模拟linux环境,这样就可以使用vi命令准备INCAR文件,也可以使用Gnuplot进行绘图。支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…

博客 4万+

Masta调用Geometry Modeller(Space Claim)进行根据三维模型快速建模设置方法

masta中调用ANSYS的space claim的设置方法

xifegnlie的博客 244

【Leetcode_总结】 859. 亲密字符串 -python

Q: 859. 亲密字符串 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 示例 1: 输入: A = "ab", B = "ba" 输出: true 示例 2: 输入: A = "ab", B = "ab" 输出: false 示例 3: 输入: A = "aa",...

maka_uir的博客 765

3D识别建模 — 基于ReconstructMe和EAGLE EYES SCANNER的实现

3D实体识别建模,作为3D打印反向工程的一个重要环节,今天就让我们利用ReconstructMe和EAGLE EYES SCANNER来了解一下。 第一步、软件和硬件准备就绪 ReconstructMe下载并安装 http://reconstructme.net/?wpdmdl=160 EAGLE EYES SCANNER直接将相应USB插入电脑接口即OK,之后在    中点击搜索“设备管理...

qq_40013290的博客 881

亲密字符串给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。

描述: 给定两个由小写字母构成的字符串 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 = “aaaaaaabc”, B = “aaaaaaacb” 输出: true 示例 5: 输入

weixin_48935632的博客 1329

Claude Code+Cursor+Claude 4三剑合璧!5步搞定Magentic-UI的OAuth2.0集成,开发效率飙升500%,新手秒变全栈工程师

本文详细介绍了如何利用Claude Code、Cursor和Claude 4三款AI工具高效集成Magentic-UI的OAuth2.0认证系统。通过5个步骤的实战演练,开发者可快速完成从环境搭建、项目分析、代码生成到前端集成的全过程,显著提升开发效率。文章还提供了JWT令牌管理、安全配置及常见问题解决方案。

weixin_29234509的博客 454

L2tp环境搭建笔记- Openwrt平台

本文使用3台openwrt设备, 分别搭建L2TP服务和2个客户端, 进行端到端验证和局域网组网,并分析搭建过程中涉及的默认路由( defaultroute) 配置问题。

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 3394

leetcode每日一题-859:亲密字符串

leetcode每日一题-859:亲密字符串 链接 亲密字符串 题目 分析 题目本身不是很难,但是有不少需要注意的地方,逐一来进行分析。首先如果两个字符串不一样长,那么肯定是false。然后考虑长度相等的情况,如果s和goal刚开始就一样答案是什么呢?如果是类似于ab,ab这种类型的,那么也是false,因为这种交换之后一定就不相等了;如果是aa和aa这种,在一些对应位置有相同的元素,那么交换后是true。在来考虑值不相等的情况,首先从前往后遍历找到第一个不一样的位置下标,然后从后往前遍历找到最后一

qq_45826803的博客 4773

VN5620以太网测试——环境搭建篇

CANoe(CAN open environment)VN5620 :是一个紧凑而强大的接口,用于以太网网络的分析、仿真、测试和验证。VN5620 接口支持各种可能的应用。它适用于与其他总线系统、网络参与(例如在模拟和生成帧、测试中的负载和错误)的同步以太网监控。在2021年Vector公司的以太网接口卡VN5610和VN5640设备已经陆续停产,相应被VN5620和VN5650代替。

诊断协议那些事儿's blog 8935

Leetcode 859.亲密字符串(Buddy Strings)

Leetcode 859.亲密字符串 1 题目描述(Leetcode题目链接)   给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 输入: A = "ab", B = "ba" 输出: true 输入: A = "ab", B = "ab" 输出: false 输入: A = "aaaaaaabc", B = "aaaaaaacb" 输出: true 提示: 0 <= A.length &

qq_39378221的博客 320

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

leetcode 算法题859 (简单223) 亲密字符串

leetcode 算法题859 (简单223) 亲密字符串 题目介绍 给定两个由小写字母构成的字符串 A 和 B , 只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果, 就返回 true ;否则返回 false 。 示例 输入: A = “ab”, B = “ba” 输出: true 输入: A = “ab”, B = “ab” 输出: false 输入: A = ...

FYuu95100的博客 245

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

#力扣 LeetCode859. 亲密字符串 @FDDLC

题目描述: https://leetcode-cn.com/problems/buddy-strings/ Java代码: class Solution { //len=0,1,2,3 public boolean buddyStrings(String a, String b) { //小写字母构成 if(a.length()!=b.length())return false; if(Objects.equals(a,b)){ .

LiuXingchang的博客 342

leetcode(力扣) 859. 亲密字符串

文章目录题目介绍:思路分析:完整代码: 题目介绍: 给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。 交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。 例如,在 “abcd” 中交换下标 0 和下标 2 的元素可以生成 “cbad” 。 示例 1: 输入:s = “ab”, goal = “ba” 输出:true 解释:你可以交

深度不学习!!的博客 431

leetcode 859. Buddy Strings 亲密字符串-耗时100

邹九的个人博客 406

LeetCode 859. 亲密字符串(Buddy Strings) 23

859. 亲密字符串 859. Buddy Strings 题目描述 给定两个由小写字母构成的字符串 A 和 B,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true;否则返回 false。 每日一算法2019/5/26Day 23LeetCode859. Buddy Strings 示例 1: 输入: A = "ab", B = "ba" 输出: true 示例 2: ...

weixin_30340353的博客 209

【力扣】859. 亲密字符串

以下为力扣官方题解,以及本人代码 859. 亲密字符串题目示例1示例2示例3示例4示例5提示官方题解 情况列举思路算法本人代码复杂度分析 题目 给定两个由小写字母构成的字符串 AAA 和 BBB ,只要我们可以通过交换 AAA 中的两个字母得到与 BBB 相等的结果,就返回 truetruetrue;否则返回 falsefalsefalse。 交换字母的定义是取两个下标 iii 和 jjj (下标从 000 开始),只要 i!=ji!=ji!=j 就交换 A[i]A[i]A[i] 和 A[j]A[j]A[

qq_45256357的博客 472

LeetCode 859.亲密字符串

LeetCode 859.亲密字符串

m0_54135264的博客 220

LeetCode 859. 亲密字符串

1. 题目 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 示例 1: 输入: A = "ab", B = "ba" 输出: true 示例 2: 输入: A = "ab", B = "ab" 输出: false 示例 3: 输入: A = "aa", B = "aa" 输出: true ...

Michael是个半路程序员 926

python-leetcode-859. 亲密字符串

这个函数首先检查字符串长度是否相等。如果它们相等且完全一致,则检查字符串中是否有重复字符(因为这样可以通过交换相同字符的位置保持不变)。如果它们不相等,则找出所有不同的字符位置,并判断是否正好有两个不同,并且它们可以互换。

Lucy_wzw的博客 275

Leetcode—859.亲密字符串【简单】Plus(ranges::any_of)

运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 576

LeetCode JAVA解题---859. 亲密字符串

LeetCode 题库 全 JAVA 解题 859. 亲密字符串 原题回顾: 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 示例 1: 输入: A = “ab”, B = “ba” 输出: true 示例 2: 输入: A = “ab”, B = “ab” 输出: false 示例3...

qq_28295947的博客 271

Python Leetcode(859.亲密字符串)

Python Leetcode(859.亲密字符串) 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 示例 1: 输入: A = “ab”, B = “ba” 输出: true 示例 2: 输入: A = “ab”, B = “ab” 输出: false 示例 3: 输入: A = “aa”,...

虎口脱险的博客 322
上一篇: leetcode 896. 单调数列
下一篇: leetcode 面试题 16.11. 跳水板
yuanyuan_HTML
博客等级 码龄10年 4粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值