2014-09-26 2 views
0

Я пытаюсь создать программу, в которой пользователь вводит строку, например «ролик», и программа преобразует алфавит в цифры, такие как a=1, b=2, c=3 и т. Д., И вычисляет сумму этих значений. Но если программа находит две одинаковые буквы подряд, то она удваивает сумму. До сих пор я сделал это:Алфавит целым числам

input = raw_input('Write Text: ') 
input = input.lower() 
output = [] 
sum=0 
for character in input: 
    number = ord(character) - 96 
    sum=sum+number 
    output.append(number) 
print sum 

, который вычисляет сумму символов, а также добавляет преобразованные символы в новый массив. Так может ли кто-нибудь помочь мне удвоить сумму, если две строки появятся подряд?

+4

Можете ли вы привести некоторые примеры входы и выходы для входа, как '' abbba', aabaa' и т.д. –

ответ

0

Сохраните предыдущий символ и сравните его с текущим символом. Если они одинаковы, удвойте значение.

word = 'hello' 
out = [] 
c_prev = None 

for c in word: 
    value = ord(c) - ord('a') 

    if c == c_prev: # double if repeated character 
     value = value * 2 

    out.append(value) 
    c_prev = c # store for next comparison 

print(sum(out)) 
+0

, который работал Thanx !! – thr

Смежные вопросы