码迷,mamicode.com
首页 > 其他好文 > 详细

859. Buddy Strings - LeetCode

时间:2018-08-24 23:34:21      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:public   ems   不同   href   length   code   java   boolean   question   

Question

859. Buddy Strings

技术分享图片

技术分享图片

Solution

题目大意:

两个字符串,其中一个字符串任意两个字符互换后与另一个字符串相等,只能互换一次

思路:

diff 记录不同字符数
长度不同
abc abd     无重复且diff == 1    ca[3] != cb[3]
abc abc     无重复且diff > 2
aa aa       aa重复
ab ba       diff == 2
aabc aabc   aa重复
aacb aabc   diff == 2

Java实现:

public boolean buddyStrings(String A, String B) {
    if (A.length() != B.length()) return false;
    int[] ca = new int[26];
    int[] cb = new int[26];
    int diff = 0;
    for (int i = 0; i < A.length(); i++) {
        ca[A.charAt(i) - 'a']++;
        cb[B.charAt(i) - 'a']++;
        if (A.charAt(i) != B.charAt(i)) diff++;
    }
    for (int i = 0; i < ca.length; i++) {
        if (diff == 0 && ca[i] > 1) return true;
        if (ca[i] != cb[i]) return false;
    }
    return diff == 2;
}

859. Buddy Strings - LeetCode

标签:public   ems   不同   href   length   code   java   boolean   question   

原文地址:https://www.cnblogs.com/okokabcd/p/9532321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!