题目描述
给定一个只包含小写字母的字符串 s,你可以任意重新排列字符串中的字符。请输出重排后能得到的字典序最大的字符串。
输入描述
一行一个字符串 s,长度不超过 100000,只包含小写字母。
输出描述
输出重排后字典序最大的字符串。
示例 1
输入:
text
abcz
输出:
text
zcba
示例 2
输入:
text
aabbcc
输出:
text
ccbbaa
解题思路
字典序最大,等价于让越大的字符越靠前。因此直接统计每个字符出现次数,然后从 'z' 到 'a' 依次输出即可。
def solve():
s = input().strip()
cnt = [0] * 26
for ch in s:
cnt[ord(ch) - ord('a')] += 1
res = []
for i in range(25, -1, -1):
if cnt[i]:
res.append(chr(ord('a') + i) * cnt[i])
print(''.join(res))
if __name__ == "__main__":
solve()