859 LeetCode 亲密字符串

题目描述:
在这里插入图片描述

思路:
1、比较长度是否相等
2、是否有两个字符不同,且交换以后,两个字符串相等
3、另一种两个字符串完全一样,但是字符串内有两个一样的字符

代码如下:

class Solution {
public:
    bool buddyStrings(string A, string B) {
        int cnt=0;
        map<char,int>num;
        vector<char>letter;
        if(A.size()!=B.size())   return false;
        for(int i=0;i<A.size();i++){
            if(A[i]!=B[i]){
                cnt++;    
                letter.push_back(A[i]);
                letter.push_back(B[i]);
            }
        }
        if(cnt==0){
            for(int i=0;i<A.size();i++){
              num[A[i]]++;
              if(num[A[i]]>=2)
              return true;
            }
        }
        if(cnt==2){
            if(letter[0]==letter[3]&&letter[1]==letter[2])
            return true;
            else return false;
            }
        return false;
    }
};
发布了133 篇原创文章 · 获赞 0 · 访问量 1133

猜你喜欢

转载自blog.csdn.net/peachzy/article/details/104457932