IFP冬休み学習|文字列中のpとyの個数


文字列内のpとyの個数
  • 問題の説明
    文字列sには大文字と小文字が含まれます.sで「p」と「y」の個数を比較し、falseとは異なる同じ真の戻りソリューションを完了します.
    「p」も「y」も存在しない場合、常にTrueが返されます.ただし、数字の比較では大文字と小文字は区別されません.
    たとえば、sがpPooyyであればtrue、Pyyであればfalseを返します.
  • 制限
  • 문자열 s의 길이 : 50 이하의 자연수
    문자열 s는 알파벳으로만 이루어져 있습니다.
  • I/O例
  •      s	     |   answer
     "pPoooyY"   |    true
       "Pyy"	 |   false
  • I/O例説明
  • - 입출력 예 #1
    'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.
    - 입출력 예 #2
    'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 return 합니다.
  • 解答)
  • def solution(s):
        y = 0    
        p = 0
        for i in s:
            if i == 'P':
                p += 1
            elif i == 'p':
                p += 1
            elif i == 'Y':
                y += 1
            elif i == 'y':
                y += 1
        if p == y:
            return True
        else:
            return False
    print(solution('pPoooY'))
  • 別の解法)
  • def solution(s):
        y = 0    
        p = 0
        for i in s:
            if i == 'P' or i == 'p':
                p += 1
            elif i == 'Y' or i == 'y':
                y += 1
        return p == y
    print(solution('pPoooY'))
  • は、解答において減少可能なコード
  • を減少する.
    def numPY(s):
        return s.lower().count('p') == s.lower().count('y')
    print( numPY("pPoooyY") )
    print( numPY("Pyy") )
  • 文字を小文字に変換し、「p」と「y」の数を比較して格納します.
  • from collections import Counter
    def numPY(s):
        c = Counter(s.lower())
        return c['y'] == c['p'] 
    print( numPY("pPoooyY") )
    print( numPY("Pyy") )