test
unknown
typescript
a year ago
1.2 kB
5
Indexable
const str = 'кошка,собака,собака,лошадь,корова,корова,кошка'
function replaceDuplicate(str:string):string {
const strSet = new Set(str.split(","))
const uniqueValues = Array.from(strSet.values()).join(',')
return uniqueValues
// Простой вариант с преобразованием в сет и обратно
}
function replaceDuplicateWithMap(str: string):string {
let result = ''
let currentWord = ''
const wordMap = new Map<string, string>()
for(let x = 0; x<str.length; x++) {
const currentChar = str[x]
debugger;
if(currentChar!==',') currentWord+=currentChar
if((currentChar === ',' || x===str.length-1) && currentWord) {
if(!wordMap.has(currentWord)) {
wordMap.set(currentWord, currentWord)
result+= !result.length? currentWord : `,${currentWord}`
}
currentWord = ''
}
}
return result
// Более оптимальный вариант по памяти
}
console.log(replaceDuplicate(str))
console.log(replaceDuplicate(replaceDuplicateWithMap(str)))Editor is loading...
Leave a Comment