-
Notifications
You must be signed in to change notification settings - Fork 0
/
duplicateEncoder.ts
30 lines (24 loc) · 1.05 KB
/
duplicateEncoder.ts
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
/*
https://www.codewars.com/kata/54b42f9314d9229fd6000d9c
The goal of this exercise is to convert a string to a new string where each character in the new
string is "(" if that character appears only once in the original string, or ")" if that character
appears more than once in the original string. Ignore capitalization when determining if a
character is a duplicate.
Examples
"din" => "((("
"recede" => "()()()"
"Success" => ")())())"
"(( @" => "))(("
Notes
Assertion messages may be unclear about what they display in some languages. If you read "...It
Should encode XXX", the "XXX" is the expected result, not the input!
*/
export function duplicateEncode(word: string): string{
let encoded = "";
let characterArray = word.toLowerCase().split('');
characterArray.forEach((ch, i) => {
let count = characterArray.filter(x => x == ch).length;
encoded += count > 1 ? ")" : "(";
});
return encoded;
}