本文主要是介绍【JS】亲密字符串 #字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。
输入: A = “ab”, B = “ba” , 输出: true
输入: A = “ab”, B = “ab” , 输出: false
输入: A = “aa”, B = “aa” , 输出: true
输入: A = “aaaaaaabc”, B = “aaaaaaacb” , 输出: true
输入: A = “”, B = “aa” , 输出: false
提示:
0 <= A.length <= 20000
0 <= B.length <= 20000
A 和 B 仅由小写字母构成。
解法一:
字符串 A 的两个不同的字符交换位置,再返回字符串 A , B 是否相同。
可能要考虑2个字符串完全相同的情况,比如 :
A=‘ab’ ,B=‘ab’ ; 互换不会相同,A=‘aab’ ,B=‘aab’ 互换字符 'aa’就是相同的
var buddyStrings = function(A, B) {if(A.length<1 || B.length<1) return false;var str='' ,p ,A=A.split("") ,arr={},same=0for(var i=0;i<A.length;i++){if(arr[A[i]]){same=1}else{arr[A[i]]=1}if(A[i]!=B[i]){if(str!=''){A[p]=A[i]A[i]=str;break;}str=A[i]p=i}}// console.log(A.join(""),B,p,arr)return A.join("")==B && ( same==1 || p>=0 ) ? true: false;}
执行用时:76 ms
已经战胜 84.77 % 的 javascript 提交记录
这篇关于【JS】亲密字符串 #字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!