尼瑪太菜了,才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)