leetcode Day26 双指针法

90 阅读1分钟

944. 删列造序

var minDeletionSize = function(strs) {
    let res=[]
    let c=0
    for(let i=0;i<strs[0].length;i++){
        let s=''
        for(let j=0;j<strs.length;j++){
            s+=strs[j][i]
        }
        res.push(s)
    }
    for(let k of res){
        if(k.split('').toString()!==k.split('').sort().toString()){
            c++
        }
    }
    return c
};

1089. 复写零

var duplicateZeros = function(arr) {
    let i=0
    let l=arr.length
    while(i<arr.length-1){
        if(arr[i]===0){
            arr.splice(i,0,0)
            i++
        }
        i++
    }
    arr.splice(l)
};

1385. 两个数组间的距离值

var findTheDistanceValue = function(arr1, arr2, d) {
    let res=arr1.length
    for(let i=0;i<arr1.length;i++){
        for(let j=0;j<arr2.length;j++){
            if(Math.abs(arr1[i]-arr2[j])<=d){
                res--
                break
            }
        }
    }
    return res
};

1768. 交替合并字符串

var mergeAlternately = function(word1, word2) {
    let i=0,j=0,res=''
    while(i<word1.length && j<word2.length){
        res+=word1[i]
        res+=word2[j]
        i++
        j++
    }
    res+=word1.slice(i,word1.length)
    res+=word2.slice(j,word2.length)
    return res
};

2108. 找出数组中的第一个回文字符串

var firstPalindrome = function(words) {
    for(let i of words){
        let flag=true
        for(let k=0;k<Math.floor(i.length/2);k++){
            if(i[k]!==i[i.length-k-1]){
                flag=false
                break
            }
        }
        if(flag){
            return i
        }
    }
    return ''
};