[PAT]1038. Recover the Smallest Number (30)

题目链接

http://pat.zju.edu.cn/contests/pat-a-practise/1038

注意

对于两个具有相同首字母的字符串,到底哪个放在前面才能使得连接起来的字符串代表的数字更小,一个简单的方法是分别连接字符串a+b,b+a,然后比较连接后的两个字符串,哪个小,哪种链接方式就是对的。

示例代码(最后一个case超时)

n = [x for x in raw_input().split()]
del n[0]
n.sort()
for i in range(1,len(n)):
    if n[i-1][0] == n[i][0]:
        if n[i]+n[i-1] < n[i-1]+n[i]:
            tmp = n[i]
            n[i] = n[i-1]
            n[i-1] = tmp
result=''
for i in n:
    result += i
print int(result)