1B python總結

尼瑪太菜了,才ACpython

 

主要是轉爲十進制的時候,注意在是26倍數的狀況下,要取模後的商減去1.git

#!/usr/bin/python
import re
numbers = input("")
readlist = []
for i in range(numbers):
    readlist.append(raw_input(""))

for str1 in readlist:
    if  'R' in str1 and 'C' in str1 and \
       str1[str1.index('R') + 1:str1.index('C')].isdigit():
        jlist1 = re.split('R|C',str1)
        jlist = int(jlist1[2])
        alist = []
        while jlist > 26:
            a = jlist % 26
            if a == 0:
                alist.append(26)
                jlist = jlist / 26 - 1
            else:
                alist.append(a)
                jlist = jlist / 26
        else:
            alist.append(jlist)
        alist.reverse()
        ilist = []
        for i in alist:ilist.append(chr(64 + i))
        print ''.join(ilist) + str(jlist1[1])
    else:
        value = 0
        numalp = [i for i in str1 if i.isalpha()]
        for i,k in enumerate(numalp):
            l = ord(k) - ord('A') + 1
            value += l * 26 ** (len(numalp) - i - 1)
        print 'R' + str1[len(numalp):] + 'C' + str(value) 
相關文章
相關標籤/搜索