从字符串中删除所有重复项并选择可能的字典最小字符串。例如,字符串 cbacdcbc 将返回 acdb,而不是 adcb。
因此,如果我们不必选择字典最小的字符串,这有一个相对简单的解决方案,但考虑到这一事实,我不确定如何找到一个有效的解决方案。这是我到目前为止所拥有的:
string removeDuplicateLetters(string s)
{
vector<bool> v(26,0);
for(int i = 0; i < s.size(); i++) {
v[s[i]-'a'] = 1;
}
string ss = "";
for(int i = 0; i < s.size(); i++) {
if(v[s[i]-'a']) {
ss += s[i];
v[s[i]-'a'] = 0;
}
}
return ss;
}