题目描述:
给定一个由纯数字组成以字符串表示的数值,现要求字符串中的每个数字最多只能出现2次,超过的需要进行删除;删除某个重复的数字后,其它数字相对位置保持不变。
如"34533",数字3重复超过2次,需要删除其中一个3,删除第一个3后获得最大数值"4533"
请返回经过删除操作后的最大的数值,以字符串表示。
输入描述:
第一行为一个纯数字组成的字符串,长度范围:[1,100000]
输出描述:
输出经过删除操作后的最大的数值
示例1
输入:
34533
输出:
4533
示例2
输入:
5445795045
输出:
5479504
shuzi=input()
daishanchu={}
for word in set(shuzi):
if shuzi.count(word)>2:
daishanchu[word]=shuzi.count(word)-2
else:
daishanchu[word]=0
stack=[]
for i in shuzi:
if stack.count(i)>=2:
continue
else:
while stack and stack[-1]<i and daishanchu[stack[-1]]>0:
daishanchu[stack[-1]]-=1
stack.pop()
stack.append(i)
print(''.join(stack))