2014-09-26 85 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'等 – 2014-09-26 14:24:22

回答

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

奏效感谢名单输入! – thr 2014-09-27 15:33:41