알고리즘 60 - Exes and Ohs

jabae·2021년 10월 31일
0

알고리즘

목록 보기
60/97

Q.

Check to see if a string has the same amount of 'x's and 'o's. The method must return a boolean and be case insensitive. The string can contain any char.

Examples input/output:

XO("ooxx") => true
XO("xooxx") => false
XO("ooxXm") => true
XO("zpzpzpp") => true // when no 'x' and 'o' is present should return true
XO("zzoo") => false

A)

function XO(str) {
  let arr = str.toLowerCase().split('');
  let count = arr.reduce((obj, el) => {
      if (el in obj) 
        obj[el] += 1;
      else 
        obj[el] = 1;
      return obj}, {});
  
  return count.x === count.o;
}

other

.filter로 걸러낸 다음, 길이를 구해서 바로 비교하는 방법도 있었다.

const XO = str => {
  str = str.toLowerCase().split('');
  return str.filter(x => x === 'x').length === str.filter(x => x === 'o').length;
}
profile
it's me!:)

0개의 댓글