# 方法一: 冒泡函數實現,未使用sort()函數
def sort_str(strself):
list1 = [str(i) for i in strself if 'a'<=i<='z'] # 字符轉換為列表,小寫字母存放一個列表
list2 = [str(i) for i in strself if 'A'<=i<='Z'] # 字符轉換為列表,大寫字母存放一個列表
# 小寫字母冒泡
for num in range(len(list1)-1):
for num in range(len(list1)-1):
if list1[num] > list1[num+1]:
temp = list1[num]
list1[num] = list1[num+1]
list1[num+1] = temp
# 大寫字母冒泡
for num in range(len(list2)-1):
for num in range(len(list2)-1):
if list2[num] > list2[num+1]:
temp = list2[num]
list2[num] = list2[num+1]
list2[num+1] = temp
return ''.join(list2 + list1) # 列表轉換為字符串,並將排序后的結果作為返回值
print(sort_str('aAbuioujsaksjdkaJHHDLKAJDLKKJDL'))
# 方法二:借助排序函數sort()
def sort_str_new(str):
list_1 = [] # 存儲所有的字母的編碼值
for item in str:
list_1.append(ord(item))
list_1.sort() # 倒序排列對應的ASCII編碼值,可不必采用冒泡排序的方式
new_str = "" # 存儲新的字符串
for item in list_1:
new_str += chr(item) # 根據數字變成對應的字母
print(new_str)
str = "aAbuioujsaksjdkaJHHDLKAJDLKKJDL"
sort_str_new(str)