0
点赞
收藏
分享

微信扫一扫

LeetCode 1790.仅执行一次字符串交换能否使两个字符串相等


LeetCode 1790.仅执行一次字符串交换能否使两个字符串相等

思路

暴力模拟,根据题目思路直接写代码即可,依次遍历字符串的每一位,如果相等则继续,如果不相同则分别储存在记录量flag1,flag2中,如果不同的位置超过两个或者只有一个则返回false,如果不存在不同位置或者不同的位置相同就返回true

代码

class Solution {
    public boolean areAlmostEqual(String s1, String s2) {
        int n=s1.length(), flag1=-1, flag2=-1;
        for(int i=0;i<n;i++)
        {
            if(s1.charAt(i)==s2.charAt(i))  continue;
            if(flag1==-1)   flag1=i;
            else if(flag2==-1)  flag2=i;
            else    return false;
        }
        if(flag1==-1)   return true;
        if(flag2==-1)   return false;
        return s1.charAt(flag1)==s2.charAt(flag2) && s1.charAt(flag2)==s2.charAt(flag1);
    }
}


举报

相关推荐

0 条评论