Почему мой код не работает в нескольких тестовых случаях и проходит несколько тестовых случаев? [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему мой код не работает в нескольких тестовых случаях и проходит несколько тестовых случаев? [закрыто]

Сообщение Anonymous »

Я решаю проблему, когда строка даты задается в форме «День Месяц Год», а затем мне приходится возвращать выходные данные в строке в формате ГГГГ-ММ-ДД. Ниже приведена моя формулировка проблемы.

Дана строка даты в формате День Месяц Год, где:
  • День находится в наборе {"1-й", "2-й", "3-й", "4-й", ..., "30-й", "31-й"}.
  • Месяц указан в наборе {"Январь", "Фев", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь" , "Декабрь"}.
  • Год находится в диапазоне [1900, 2100].
Преобразовать дату строка в формате ГГГГ-ММ-ДД, где:
  • ГГГГ обозначает год из 4 цифр.
  • ММ обозначает месяц из двух цифр.
  • DD обозначает день из двух цифр.
Я написал для него код, но он проходит только в нескольких тестовых случаях и в некоторых не проходит. как показано ниже

Код: Выделить всё

class Solution(object):
def reformatDate(self, date):
list_date = date.split()
YYYY = ""
MM = ""
DD = ""

DD_dict = {
"1st": "1", "2nd": "2", "3rd": "3", "4th": "4",
"5th": "5", "6th": "6", "7th": "7", "8th": "8", "9th": "9", "10th": "10",
"11th": "11", "12th": "12", "13th": "13", "14th": "14", "15th": "15", "16th": "16",
"17th": "17", "18th": "18", "19th": "19", "20th": "20", "21st": "21", "22nd": "22",
"23rd": "23", "24th": "24",
"25th": "25", "26th": "26", "27th": "27", "28th": "28", "29th": "29", "30th": "30", "31st": "31"
}

MM_dict = {
"Jan": "1", "Feb": "2", "Mar": "3", "Apr": "4",
"May": "5", "Jun": "6", "Jul": "7", "Aug": "8", "Sep": "9", "Oct": "10",
"Nov": "11", "Dec": "12"
}

for char in list_date:
if char in DD_dict:
if int(DD_dict[char]) < 10:
DD += '0' + DD_dict[char]
else:
DD += DD_dict[char]
elif char in MM_dict:
if int(MM_dict[char]) < 10:
MM += '0' + MM_dict[char]
else:
MM += MM_dict[char]
else:
YYYY += char

return "".join(f'{int(YYYY)}-{int(MM)}-{int(DD)}')

if __name__ == '__main__':
date = "20th Oct 2052"
d2 = "26th May 1960"

print(Solution().reformatDate(date))
print(Solution().reformatDate(d2))
Итак, здесь отображается правильный вывод для входной даты = «20 октября 2052 г.» как 20 октября 2052 г., но отображается неправильный вывод для ввода d2 = «26 мая 1960 г.» как « 1960-5-26». Он должен отображать вывод как «1960-05-26». Можете ли вы сказать мне, где я ошибаюсь?

Подробнее здесь: https://stackoverflow.com/questions/791 ... test-cases
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»