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'))