Я преобразовываю буквы в строку в соответствующие номера и печатаю ДА, если результат делится на 6 или НЕТ. Например, ab равен 12 и даст ДА. Программа отлично работает для небольших строк, но дает неправильный ответ на очень длинные входы. Я попытался изменить тип данных для целых чисел до конца, но ничего не изменилось.Строковый декодер не работает должным образом
Тестовый пример, для которого он не работал: here#1
Edit: ограничения ввода позволяют только символы нижнего регистра «а» до «Я» Оригинал проблемусвязь: https://www.hackerearth.com/problem/algorithm/encoded-strings-3/
str = raw_input()
n = len(str)
value = 0L
str = str[::-1]
for i in arange(n):
value = value*1L + (10L**i)*(ord(str[i])-96)
if value%6 == 0:
print "YES"
else:
print "NO"
ни один из них не выглядит как «тестовые примеры», они больше похожи на полный вызов, он работает для более коротких ** тестов **, он работал для нескольких тестов, которые я пропустил. –
просто удалось запустить код с обоими вашими случаями, 'значение% 6' было' 4' для первого случая и '3' для второго, я не думаю, что это ** предположим ** для печати' YES'. –
@ TadhgMcDonald-Jensen Да, он работал для более коротких тестовых случаев. Я опубликовал ответ с новым кодом, который работает. Скорее всего, я думаю, проблема в том, что строка после преобразования слишком длинна для long int. Ответ - ДА для обоих. –