zoukankan      html  css  js  c++  java
  • 亲密字符串

    在leetCode上看到亲密字符串,接下来对这个词进一步的了解,从而写下了这篇笔记。

    亲密字符串

    给定两个由小写字母构成的字符串 AB ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false

    提示:

    • A和B仅由小写字母构成
    • 只交换两个字母
    • A和B的长度相等

    实现思路

    亲密字符串几乎是匹配的,这两个字符串只有两个索引的值不一样(两个字符串不是完全相等的情况下)

    一共有两种情况

    • 一是两个字符串完全相等。
      在这种情况下,我们需要在一个字符串中寻找两个相同的字母的索引,交换这两个字母的位置,这两个字符串还是相等的。

    • 二是这两个字符串不相等的情况。
      首先,比较这两个字符串,找出这两个字符串不相等的字母的位置。然后统计字母不一样的数量是否为2(只需要交换两个字母的位置),如果大于2则不是亲密字符串。找到不一样的字母以后,在字符串A中交换这两个字母的位置,然后比较是否相等,相等则是亲密字符串

    var A='abfdbc'
    var B='abcdbf'
    function buddyStrings(A, B) {
        if (A.length != B.length) {
            return false;
        }
        if (A === B) {
            for (let i = 0; i < A.length; i++) {
                for (let j = i + 1; j < A.length; j++) {
                    if (A[i] === A[j]) {
                        var charA = A[i]
                        return A[i]
                    }
                }
            }
        } else {
            var count = 0
            var aString = []
            var bString = []
            for (let i = 0; i < A.length; i++) {
                if (A.charAt(i) !== B.charAt(i)) {
                    aString[count] = A.charAt(i)
                    bString[count] = B.charAt(i)
                    count += 1
                    if (count > 2) {
                        return false
                    }
                }
            }
            if (aString[1] === bString[0] && aString[0] === bString[1] && count < 3) {
                return aString
            }
            else {
                return false
            }
        }
    }
    var a = buddyStrings(A, B)
    console.log(a)
    
  • 相关阅读:
    当Java遇到XML 的邂逅+dom4j
    idea集成项目管理工具 --- Maven 并且【配置tomcat】
    C#连接操作MySQL数据库详细步骤 帮助类等(二次改进版)
    MySQL 中国省市区SQL表数据
    LeetCode-28. 实现 strStr()
    LeetCode-66 加一
    头插法将单链表原地逆转
    LeetCode:27 移除元素
    LeetCode:26删除有序数组中相同的数.(Python3)
    LeetCode-21 有序链表的合并
  • 原文地址:https://www.cnblogs.com/qfstudy/p/9309115.html
Copyright © 2011-2022 走看看