# All files / algorithms/lib duplicateEncodedr.ts

0% Statements 0/37
0% Branches 0/1
0% Functions 0/1
0% Lines 0/37

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45

     export function duplicateEncode(word: string) {
      let res = "";
      let i = 0;

      while (i < word.length) {
        const char = word[i];

        const firstIndex = word.indexOf(char)
        const lastIndex = word.lastIndexOf(char)

        if (firstIndex !== lastIndex) {
          res += ")"
        } else {
          res += "("
        }

        i++
      }

      return res;
    }

    export function duplicateEncode1(word: string) {
      return word
        .toLowerCase()
        .split('')
        .map((a, _, w) => {
          return w.indexOf(a) == w.lastIndexOf(a) ? '(' : ')'
        })
        .join('')
    }

    console.log(
      duplicateEncode("din"), "((("
    )
    console.log(
      duplicateEncode("recede"), "()()()"
    )
    console.log(
      duplicateEncode("Success"), ")())())"
    )
    console.log(
      duplicateEncode("(( @"), "))(("
    )