DEV Community

Discussion on: Daily Challenge #297 - Loneliest Character

Collapse
 
_bkeren profile image
''

JS


const loneliest = string => {
  let letterSpaceStatus= []
  for (let i = 0; i < string.length;) {
    if (string.charAt(i) !== ' ') {
      let letterIndex = i
      let rightSpaceCount = 0,
        spaceCount = 0
      if (letterSpaceStatus.length > 0) {
        spaceCount = letterSpaceStatus[letterSpaceStatus.length - 1].rightSpaceCount;
      }
      i++
      while (i < string.length && string.charAt(i) === ' ') {
        i++
        spaceCount++
        rightSpaceCount++
      }
      letterSpaceStatus[letterSpaceStatus.length] = {
        letter: string.charAt(letterIndex),
        spaceCount,
        rightSpaceCount
      }
    } else {
    i++
    }
  }

  const maxSpaceCount = Math.max(...letterSpaceStatus.map(li => li.spaceCount))
  return letterSpaceStatus.filter(i => i.spaceCount === maxSpaceCount).map(i => i.letter)
}

Enter fullscreen mode Exit fullscreen mode