首页 > 字母排序问题

字母排序问题

例如我有一个字符串

string = "FolloW"

我需要将字符串重新排序,最大的字母最先,最小的最后。

理论上结果为 "oollWF"

现在我的代码是:

string = "FolloW"

List = {}
Tmp = ''

for i in range(len(string)):
    Tmp = i
    for j in range(i+1,len(string)):
        if string[Tmp] >= string[j]:
            List[i] = string[Tmp]
        else:
            List[i] = string[j]

for i in List:
    print i,List[i]
    
    

结果为:

C:\Python27\python.exe "D:/Learning/Python Project/Test"
0 W
1 o
2 l
3 l
4 o

Process finished with exit code 0


>>> string = "FolloW"
>>> l = list(string)
>>> l.sort(reverse=True)
>>> l
['o', 'o', 'l', 'l', 'W', 'F']

string = "FolloW"
List = {}
Tmp = ''

for i in range(len(string)):
    Tmp = i
    List[i] = string[Tmp]
    k = 0
    for j in range(i+1,len(string)):
        if List[i] < string[j]:
            List[i] = string[j]
            k = j
    if k > 0:
        string = string[k] + string[0:k] + string[k+1:]

for i in List:
    print i,List[i]

第二轮循环中,你应该拿当前得到的最大值与后面的值对比,而不是string[Tmp]——(string[i])
第二轮循环选出最大值后,该值没用了,而且如果该值不是本轮比较的第一个,第一个值需要参与到后面的比较。

开始答案错了,改过的很粗糙。

【热门文章】
【热门文章】