文字列中のpとyの個数[Level 1]Python


問題の説明


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

せいげんじょうけん


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

I/O例



I/O例説明


I/O例#1
「p」の個数が「y」の個数に等しいため、trueを返します.
I/O例#2
false(1つの「p」と2つの「y」)を返します.

私が書いたコード

import re

def solution(s):
    
    p_num = [i.start() for i in re.finditer('p', s)]
    P_num = [i.start() for i in re.finditer('P', s)]
    y_num = [i.start() for i in re.finditer('y', s)]
    Y_num = [i.start() for i in re.finditer('Y', s)]
    
    if len(p_num)+len(P_num) == len(y_num)+len(Y_num) or (len(p_num)+len(P_num) == 0 and len(y_num)+len(Y_num) == 0): return True
    else: return False

効率的なコード

def solution(s):
    
    if s.lower().count('p') == s.lower().count('y'): return True
    else: return False
学んだことはcount()関数を学び、文字列内の特定の文字を計算することができます.