Description
Tom有些时候为了记录的方便,常常将一些连续的字符用扩展符’-‘简单表示。比如abcdefg可以简写为a-g,即用起始的字符和终止字符中间加上一个扩展符’-‘来表示这个字符串。但是为了处理的方便,Tom又必须将这些我们简单记法扩展成原来的字符串。很明显要是人工来做的话必定很麻烦,Tom知道计算机可以帮助他完成这个任务,但是他却不会编程,这的确让他很上火。他知道今天是山东理工大学第三届ACM校赛的日子,届时来自全校的编程爱好者都会来参加比赛,他很兴奋,因为这个困惑他良久的问题终于要被解决了。给你一个含有扩展符’-'的字符串,你的任务就是将他还原成原来的字符串。要求是只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时并且扩展符前面的字符不大于后面的字符才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。
Input
第一行是一个正整数T,表示共有T组测试数据(T < 100)。下面的T行,每一行包括一个长度不大于1000的待扩展字符串.
Output
每组测试数据输出一行扩展后的字符串。
下面展示一些 内联代码片
。
count = int(input())
for i in range(count):
s_list = list(input())
length = len(s_list)
j = 0
while j < length:
if j > 0 and j < length - 1 and s_list[j] == "-":
if "a" <= s_list[j-1] <= s_list[j+1] <= "z" or "A" <= s_list[j-1] <= s_list[j+1] <= "Z" or "0" <= s_list[j-1] <= s_list[j+1] <= "9":
temp_list = []
temp = chr(ord(s_list[j - 1]) + 1)
while s_list[j - 1] < temp < s_list[j + 1]:
temp_list.append(temp)
temp = chr(ord(temp) + 1)
s_list[j:j+1] = temp_list
temp_len = len(temp_list)
length = len(s_list)
j += temp_len
else:
j += 1
else:
j += 1
s = "".join(s_list)
print(s)
本人刚学Python,代码可能写的不是很好,目前在刷oj平台的题目,有些题目在网上找不到答案,所打算分享一下自己的代码,质量可能不是很好,但都是ac过的,关注我,不定时分析oj代码,如果各位有不会的,可以私聊我,一起研究