//
// Created by Mr.Hu on 2019/1/17.
//
// leetcode 859 buddy strings
//
// 题目要求判断两个字符串是否为buddy string,即是否能够通过对字符串A交换两个字符串得到字符串B
//
// 这个题目思路其实不难,但是要仔细分析会出现的情况,特别是给定的case,我就是疏忽了题目给的case,错了好几次…心酸
//
// 对于”ab”和”ab”,结果为false,而对于”aa”和”aa”,结果为true;所以我们不能笼统的判断是否相等就给定最后的结果;
// 这里我们用两个int变量来表示可能存在的两个字符所在的位置,给予初始化-1;
// 在遍历字符串时,第一个不相同的位置赋值为dif1,第二个不相同的位置赋值给dif2,一旦出现第三个,则返回false;
// 用set
// 这个变量在两个字符串相等时用,如果has_duplication为true,则可以交换两个字符得到另外一个;否则不可以。
// 如果两个字符串不想等,则判断两个int变量是否都不等于-1,存在等于-1的情况,则return -1;
// 如果两个int都不等于-1。则交叉判断两个字符dif1和dif2是否相同,存在不相同,则return false;
// 最后return true;
//
1 |
|