Duplicate Encoder
codewars 6kyu
by trentHarlem
JavaScript
/* function duplicateEncode(word) {
word = word.toLowerCase()
let enc = word.toLowerCase()
for (let ch of enc) {
// console.log('w',word.slice((word.indexOf(ch+1),0)))
enc = word.match(`/${ch}{2,}?/`) ? enc.replace(ch, '(') : enc.replace(ch, ')')
}
return enc
} */
///// WORKING FOR SIMPLE TESTS ... NOT SOME RANDOMS
function duplicateEncode(word) {
word = word.toLowerCase()
let enc = word.toLowerCase()
for (let ch of enc) {
enc = word.indexOf(ch) === word.lastIndexOf(ch) ? enc.replace(ch, '(') : enc.replace(ch, ')')
}
return enc
}
const reg = /([a-zA-Z]{2,})\\1$/
const reg2 = /(.)\1{2,}/
//. "([a-zA-Z]{2,})\\1$"
//. WORKING. PASSED
/* function duplicateEncode(word) {
let output = []
const wordArr = word.toLowerCase().split('')
return word
.toLowerCase()
.split('').slice()
.map((ch,i,arr) => arr.filter(c => c === ch).length>1?')':'(')
.join('')
} */
const spaces = str => {
for (let c of str) str = str.replace(c, 'x');
return str
}
console.log(spaces(' '))
console.log(duplicateEncode("din"), "(((");
console.log(duplicateEncode("recede"), "()()()");
console.log(duplicateEncode(' ( ( )'), ')))))(');
/* function reggie(string) {
console.log(string.match(/(string[0]){2,}?/)?'poo':'nah')
//console.log('aa'.match(/(.){2,}?/)?'poo':'nah')
if ('a'.match(/(.){2,}?/)) return 'poo'
//if (string.match(/[a]{2,}/)) return 'poo'
} */
//console.log(reggie('abacadabra'))
//console.log(reggie('and'))