文字列内のpとyの個数(JavaScript)


問題の説明


文字列sには大文字と小文字が含まれます.sで「p」と「y」の個数を比較し、「同じものが真であり、異なるものがfalseを返す」ソリューションを完了します.p"もyも存在しない場合、常にTrueが返されます.ただし、数字の比較では大文字と小文字は区別されません.
たとえば、sがpPooyyであればtrue、Pyyであればfalseを返します.

せいげんじょうけん


文字列sの長さ:50未満の自然数
文字列sはアルファベットのみからなる.

I/O例


sanswer"pPoooyY"true"Pyy"false

問題を解く

function solution(s){
  let answer = true
  let x = 0
  let y = 0
  for (let i = 0; i < s.length; i++){
    if (s[i] === "p" || s[i] === "P"){
      x += 1
    }else if (s[i] === "y" || s[i] === "Y"){
      y += 1
    }
  }
  if (x !== y) {
    answer = false
  }
  return answer
}
  • 文字列sにpまたはPがある場合は、xに1を加算します.
  • 文字列sにyまたはYがある場合、yに1を加算します.
  • xはyの値と比較し、同じまたは両方が0の場合はtrue、異なる場合はfalseを返します.
  • 別の解釈

    function solution(s){
      s = s.toUpperCase()
      let p = s.split("P").length
      let y = s.split("Y").length
      return p===y
    }
  • 大文字と小文字を区別せず、個数をリフレッシュするだけで大文字に変更できます.
  • split()()内で値を変換し、[]内に値を入れるのは簡単です.
    s=「OPYPORY」の場合、s.split("P")[“O”、“Y”、“ORY”.s.split("Y")[“OP”、“POR”、“]”.
  • は、大文字に変換されたsをPとYの配列の長さと比較して返します.