[プログラマー/javascript]16文字列内のpとyの個数


問題の説明
文字列sには大文字と小文字が含まれます.sで「p」と「y」の個数を比較し、「同じものが真であり、異なるものがfalseを返す」ソリューションを完了します.p"もyも存在しない場合、常にTrueが返されます.ただし、数字の比較では大文字と小文字は区別されません.
たとえば、sがpPooyyであればtrue、Pyyであればfalseを返します.
せいげんじょうけん
  • 文字列sの長さ:50未満の自然数
  • 文字列sはアルファベットのみからなる.
  • I/O例
    sanswer"pPoooyY"true"PYY"false
    I/O例説明
    I/O例#1
    「p」の個数が「y」の個数に等しいため、trueを返します.
    I/O例#2
    false(1つの「p」と2つの「y」)を返します.
    に答える
    function solution(s){
        var answer = true;
        s = s.toUpperCase();
        if((s.split('P').length == s.split('Y').length)) {
          answer = true;
        } else {
          answer = false;
        }
        return answer;
    }
    解説
    toUpperCase関数を使用して、文字列をすべて大文字に置き換えて比較します.
    split関数を用いて特定の単語の出現回数を求めることができる.
    別の解釈
    function numPY(s) {
      return s.match(/p/ig).length == s.match(/y/ig).length;
    }
    matchを用いても単語の出現回数を簡単に比較することができる.