Лишние знаки

Напишите функцию, которая будет принимать строку (предложение) и преобразовывать ее так, чтобы вопросительные и восклицательные знаки в конце не повторялись.

Примечания:

  • повторяющиеся знаки исправляем только в конце предложения (внутри строки оставляем без изменений)
  • во входящей строке не будет смешанных знаков (типа ?!??!)
  • если в конце входящего предложения вопросительные или восклицательные знаки отсутствуют, возвращаем его без изменений
  • если в конце только один вопросительный или восклицательный знак, оставляем его без изменения.

Примеры

no_yelling("What went wrong?????????") ➞ "What went wrong?"

no_yelling("Oh my goodness!!!") ➞ "Oh my goodness!"

no_yelling("I just!!! can!!! not!!! believe!!! it!!!") ➞ "I just!!! can!!! not!!! believe!!! it!"

no_yelling("Oh my goodness!") ➞ "Oh my goodness!"

no_yelling("I just cannot believe it.") ➞ "I just cannot believe it."

Варианты решений

import re
def no_yelling(phrase):
    return re.sub("([!?])+$",r"\1",phrase)
def no_yelling(phrase):
    while phrase[-2] == '!' or phrase[-2] == '?':
        phrase = phrase[0:-1]
  
    return phrase