[Code Wars] Remove all exclamation marks from the end of sentence

문제

https://www.codewars.com/kata/57faece99610ced690000165/solutions/python

나의 풀이

다른 사람의 풀이

  1. Best Practice 1등의 풀이

    def remove(s):
        return s.rstrip("!")
    
    • rstip 에 대해서 완전 처음에 파이썬을 배울 때, 사용했던 기억이 나는데, 그 이후 사용하지 않다보니 이 메소드에 대해서는 완전히 깜빡하고 있었다.

    rstip([chars])

    • 문자열 오른쪽을 제거. Chars 지정이 없으면 공백이 제거되고, 지정 되어있으면 chars의 모든 조합을 제거한다.
    In [1]: mock = 'kwontaehyoung!!@@##$$!@#$!@$#'
        
    In [2]: mock.rstrip('!@#$')
    Out[2]: 'kwontaehyoung'
    
    • lstrip(왼쪽 제거) 과 strip(양쪽 제거) 도 있다
  2. 그 외 풀이

    import re
    def remove(s):
        return re.match(r"(.*[^!]+)\!*", s).group(1)
    
    import re
    def remove(s):
        return re.search(r'^.+[^!]', s).group()
    
    • 위와 같이 정규표현식으로도 해결이 가능하다.

회고