test

 avatar
unknown
typescript
5 months ago
1.2 kB
2
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