給乙個全是小寫字母的字串str,刪除多餘字元,使得每種字元只保留乙個,並且讓最終結果字串字典序最小。
輸入包含一行字串,代表str(1≤length(str)≤10^5)。
輸出一行,代表刪除後的字串。
示例1
acbc
abc
dbcacbca
dabc
時間複雜度o(n),額外空間複雜度o(1)。
//o(n*k) k==26 ---> o(n) o(1)
#includeusing namespace std;
int main(); //用於統計字元個數
int vis[26]=; //用於標識是否訪問過
for(int i=0;i0 && res.back()>s[i])
res+=s[i]; //res尾部加上s[i]
vis[s[i]-'a']=1; //s[i]已訪問
}cout
}
刪除多餘的字元得到字典序最小的字串
刪除多餘的字元得到字典序最小的字串 給乙個全是小寫字母的字串str,刪除多餘字元,使得每種字元只保留乙個,並且讓最終結果字串字典序最小。輸入描述 輸入包含一行字串,代表str 1 l engt hstr 105 str 1 leq length leq 10 5 str 1 leng thst r ...
最小的字典序
題目 給定乙個字串型別的陣列strs,找到一種拼接方式,使得把所有字 符串拼起來之後形成的字串具有最低的字典序。如 ab cd ef 則拼接後的最低字典序是 abcdef 這裡重點是選擇什麼樣的貪心策略 public class dictsort public static string lowes...
字典序最小的最短路
給出n和m,有n個點,m條雙向邊,1為起點,n為終點,每條邊都有乙個權值,經過每一條邊的時間都為1,求從起點到終點既要時間最少,又要權值組成的序列的字典序最小的一條路徑.4 6 1 2 1 1 3 2 3 4 3 2 3 1 2 4 4 3 1 1 2 1 3 50 n 100 100 n 1000...