def get_lower_upper_letter(list_data):
"""
有一个大小写做成的字符串 ,将其修改所有的小写字母排在大写字母前面(大写或小写字母之间不要求保持原来次序)
如果可以进来选择时间和空间效率高的算法
:return:
"""
# list_lower = []
# list_upper = []
# for i in range(len(str_data)):
# if ord("a") <= ord(str_data[i]) and ord(str_data[i]) <= ord("z"):
# list_lower.append(str_data[i])
# if ord("A") <= ord(str_data[i]) and ord(str_data[i]) <= ord("Z"):
# list_upper.append(str_data[i])
#
# str_res = "".join(list_lower+list_upper)
# print(str_res)
i = 0
j = len(list_data) - 1
while i <= j:
while i <= j and ord("a") <= ord(list_data[i]) and ord(list_data[i]) <= ord("z"):
i += 1
while i <= j and ord("A") <= ord(list_data[j]) and ord(list_data[j]) <= ord("Z"):
j -= 1
# 注意,一定要有这个判定条件
if i <= j:
list_data[i], list_data[j] = list_data[j], list_data[i]
return "".join(list_data)
if __name__ == '__main__':
# nqwjidadaslmdHUIHUJIJOJJOJIJQM
print(get_lower_upper_letter(list("nqwjiHUIHUdaJIJOJdaslmdJOJIJQM")))