var oneEditAway = function(first, second) {
if(Math.abs(first.length-second.length)>1){
return false
}
if(first===second){return true}
let flag=1
let i=0,j=0
while(i<first.length && j<second.length){
if(first[i]===second[j]){
i++
j++
}
else{
if(flag>0){
if(first.length===second.length){
i++
j++
}
else if(first.length>second.length){
i++
}
else{
j++
}
flag
}
else{
return false
}
}
}
return true
};
var sumOfLeftLeaves = function(root) {
let res=0
const dfs=(root)=>{
if(!root)return
if(root.left && !root.left.left && !root.left.right){
res+=root.left.val
}
dfs(root.left)
dfs(root.right)
}
dfs(root)
return res
};
var findMode = function(root) {
let map=new Map()
let res=[]
const dfs=(root)=>{
if(!root)return
dfs(root.left)
map.set(root.val,map.has(root.val)?map.get(root.val)+1:1)
dfs(root.right)
}
dfs(root)
const max=Math.max(...map.values())
for(let [key,value] of map){
if(value===max){
res.push(key)
}
}
return res
};
var getMinimumDifference = function(root) {
let res=[],ans=[]
const dfs=(root)=>{
if(!root)return
dfs(root.left)
res.push(root.val)
dfs(root.right)
}
dfs(root)
for(let i=0;i<res.length-1;i++){
ans.push(res[i+1]-res[i])
}
return Math.min(...ans)
};
var reformatNumber = function(number) {
let regPos = /^[0-9]+.?[0-9]*/
let str=''
let res=[]
for(let i of number){
if(regPos.test(i)){
str+=i
}
}
let j=0
while(j<str.length){
if(str.length-j>4){
res.push(str.slice(j,j+3))
j=j+3
}
else if(str.length-j===4){
res.push(str.slice(j,j+2))
res.push(str.slice(j+2,j+4))
j=str.length
}else{
res.push(str.slice(j,str.length))
j=str.length
}
}
return res.join('-')
}