田径场上的字符串
问题描述
给定一个字符串,只含有可打印字符,通过删除若干字符得到新字符串,新字符串必须满足两个条件:原字符串中出现的字符,新字符串也必须包含。 新字符串中所有的字符均不相同。新字符串的字典序是满足上面两个条件的最小的字符串。
解题思路
定义一个数组保存下来每一个字符的数量。每遍历一遍这个字符,数量就减减。要保证输出字典序最小的字符串,必须保证栈里面的元素为单调递增的。每遍历一个元素,如果比栈顶字典序大,直接入栈。如果比栈顶小,看栈顶元素的数量是否为零,如果不为零。栈顶踢出,继续遍历;
代码实现
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f4e8855b9dd915c604c159856808385a.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1690aacd001d8a7f314a7700d0a1eb8c.png)