
leetcode 859. Buddy Strings
检查长度:首先,我们需要确保字符串A和B的长度相同。如果长度不同,显然无法通过交换字符来得到另一个字符串,因此直接返回false。 完全相同:如果A和B完全相同,无需任何交换,直接返回true。 寻找不同字符的位置:遍历字符串,记录所有在A和B中不对应字符的位置。如果不同字符的位置数量不为0或2,返回false。 检查交换条件:如果有两个不相同的位置,分别为i和j,检查交换这两个字符后是否使得A变为B。这意味着A[i]必须等于B[j]且A[j]等于B[i],同时其他位置必须完全相同。 检查长度:首先检查字符串A和B的长度是否相同。 完全相同检查:如果A和B完全相同,直接返回true。 收集不同位置:通过遍历字符串,收集所有在A和B中字符不对应的位置,存入列表 不同的位置数量检查:如果不同的位置数量不是0或2,直接返回false。 交换条件检查:如果有两个不同的位置,交换这两个字符后检查是否能使得A变为B。如果满足条件,返回true,否则返回false。
发布日期:2025-04-05 00:23:46
浏览次数:13
分类:精选文章
本文共 1321 字,大约阅读时间需要 4 分钟。
要解决给定的问题,我们需要判断是否可以通过一次字符交换将字符串A转换为字符串B。以下是解决问题的详细思路和步骤:
思路
代码实现
public class Solution{ public bool BuddyStrings(string A, string B) { int len = A.Length; if (len != B.Length) return false; if (A == B) return true; List diffs = new List (); for (int i = 0; i < len; i++) { if (A[i] != B[i]) diffs.Add(i); } if (diffs.Count != 0 && diffs.Count != 2) return false; if (diffs.Count == 2) { int i = diffs[0]; int j = diffs[1]; if (i > j) return false; // Ordering doesn't matter since i and j are indistinguishable if (A[i] == B[j] && A[j] == B[i]) return true; } return false; }}
代码解释
diffs
。这个方法确保了在O(n)时间复杂度内解决问题,其中n是字符串的长度,适用于处理常见的字符串长度问题。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月28日 10时36分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新大模型学习路线,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了
2023-01-25
2025版最新大模型微调方法(非常详细)零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新大语言模型的指令微调,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新小白学习大模型:什么是大模型?零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了
2023-01-25
2025版最新网络安全等级保护测评指南,零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新运维怎么转行网络安全?零基础入门到精通,收藏这篇就够了
2023-01-25
2025版最新黑客学习网站(非常详细),零基础入门到精通,看这一篇就够了
2023-01-25
2025版网络工程11个高含金量证书(非常详细)零基础入门到精通,收藏这篇就够了
2023-01-25
2025自学成为黑客必读的5本书籍,带你从小白进阶成大佬
2023-01-25
23张图告诉你组建一个网络需要用到哪些硬件设备?路由器、交换机、防火墙是不是就够了?
2023-01-25
#12 btrfs文件系统
2023-01-25
#3194. 去月球
2023-01-25
$scope angular在controller之外调用
2023-01-25
canvas设置文字阴影
2023-01-26