描述
编写一个程序,将输入字符串中的字符按如下规则排序
(一个测试用例可能包含多组数据,请注意处理)。
**规则 1** :英文字母从 A 到 Z 排列,不区分大小写。
如,输入: Type 输出: epTy
**规则 2** :同一个英文字母的大小写同时存在时,按照输入顺序排列。
如,输入: BabA 输出: aABb
**规则 3** :非英文字母的其它字符保持原来的位置。
如,输入: By?e 输出: Be?y
样例:
输入:
A Famous Saying: Much Ado About Nothing(2012/8).
输出:
A aaAAbc dFgghh : iimM nNn oooos Sttuuuy (2012/8).
def func(s):
'''
type: s: string
rtype: st: string
'''
#遍历字符串并加入到数组
a = []
dic_a = {}
for i in range(len(s)):
if not s[i].isalpha():
#找到符号所在的下标,保存到字典中,包括空格
dic_a[i] = s[i]
#把所有字母加入到数组中
if s[i].isalpha():
a.append(s[i])
#对a数组进行排序
#进行排序如果前一个数大于后一个数,就交换一下位置,否则就跳过
for i in range(len(a)):
for j in range(1,len(a)-i):
if a[j].lower() < a[j-1].lower():
a[j-1], a[j] = a[j], a[j-1]
else:
pass
#遍历字符键,并将其插入到列表当中
for i in dic_a.keys():
a.insert(i,dic_a[i])
#将列表转换成字符串
st = "".join(map(str, a))
return st
if __name__ == "__main__":
while True:
try:
s = input()
print(func(s))
except:
break
描述编写一个程序,将输入字符串中的字符按如下规则排序(一个测试用例可能包含多组数据,请注意处理)。**规则 1** :英文字母从 A 到 Z 排列,不区分大小写。如,输入: Type 输出: epTy**规则 2** :同一个英文字母的大小写同时存在时,按照输入顺序排列。如,输入: BabA 输出: aABb**规则 3** :非英文字母的其它字符保持原来的位置。如,输入: By?e 输出: Be?y样例:输入:A Famous Saying: Much Ado About Not