[6kyu][fundamentals][strings][array]

https://www.codewars.com/kata/54b42f9314d9229fd6000d9c/solutions/typescript

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.
This commit is contained in:
2024-10-03 13:15:35 +03:00
parent e9a72107ed
commit aeb641e339
+44
View File
@@ -0,0 +1,44 @@
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("(( @"), "))(("
)