fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

[js] 第302天 写一个方法删除字符串中所有相邻重复的项

Open haizhilin2013 opened this issue 5 years ago • 6 comments

第302天 写一个方法删除字符串中所有相邻重复的项

我也要出题

haizhilin2013 avatar Feb 11 '20 20:02 haizhilin2013

function delneighbor(string) {
    if(string.length <= 1) {
        return string
    }
    let prev = string[0];
    let result = prev;
    let i = 1;
    while(i < string.length) {
        const current = string[i++];
        if(current == prev) {
            continue;
        }
        prev = current;
        result += current;
    }
    return result;
}

Zhou-Bill avatar Feb 12 '20 07:02 Zhou-Bill

可以利用正则:

'aabbaaaaccdeee'.replace(/(.)\1*/g, '$1');  // abacde

wheatup avatar Feb 12 '20 09:02 wheatup

let s='2211dddfccc'; let arr = Array.from(new Set([...s])).join(''); //21dfc

SoberK avatar Feb 13 '20 03:02 SoberK

 function delneighbor(str) {
      if (str.length <= 1) {
        return str;
      }
      // 先转成数组
      let arr = str.split("");
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] == arr[i + 1]) {
          arr.splice(i, 1)
        }
      }
      // join不改变原数组
      let newStr = arr.join("");
      return newStr
    }
    console.log(delneighbor('helssaabssaavvccblo'))

andypoplar avatar Mar 06 '20 03:03 andypoplar

const delneighbor = (str) => [...str].reduce((ans, cur) => ans[ans.length-1] === cur ? ans : ans + cur  , '')
delneighbor('aabbaaaaccdeee')

NoBey avatar Mar 14 '22 11:03 NoBey

var str = 'aaabbbaaacccdfddfffeee' const delneighbor = (str) => { let data = str.split('') let newStr = '' data.reduce((prev,next) => { if (prev != next) { newStr+=prev } return next }) return newStr }

xiaoqiangz avatar Sep 02 '22 03:09 xiaoqiangz