mirror of
https://github.com/Sevichecc/Urara-Blog.git
synced 2025-04-30 18:19:30 +08:00
1.6 KiB
1.6 KiB
title | summary | created | tags | categories | lastmod | ||
---|---|---|---|---|---|---|---|
JavaScript · 字符串去重 | 编码实现字符串去重 | 2022-03-07T13:55:21.090Z |
|
|
2022-04-07T07:20:30.550Z |
题目
来源:百度前端学院
/*
去掉字符串 str 中,连续重复的地方
*/
function removeRepetition(str) {
// do something
}
// 测试用例
console.log(removeRepetition('aaa')) // ->a
console.log(removeRepetition('abbba')) // ->aba
console.log(removeRepetition('aabbaabb')) // ->abab
console.log(removeRepetition('')) // ->
console.log(removeRepetition('abc')) // ->abc
解法
function removeRepetition(str) {
let strArr = [...str]
const result = strArr.filter((s, i, arr) => s !== arr[i + 1]).join('')
return result
}
console.log(removeRepetition('aaa')) // ->a
console.log(removeRepetition('abbba')) // ->aba
console.log(removeRepetition('aabbaabb')) // ->abab
console.log(removeRepetition('')) // ->
console.log(removeRepetition('abc')) // ->abc
如果没有限定条件说是“连续重复”,就可以用 Set:
function removeRepetition(str) {
let strArr = [...new Set(str)]
return strArr.join('')
}
console.log(removeRepetition('aaa')) // ->a
console.log(removeRepetition('abbba')) // ->ab
console.log(removeRepetition('aabbaabb')) // ->ab
console.log(removeRepetition('')) // ->
console.log(removeRepetition('abc')) // ->abc