前言:这个题目一开始我没想通的就是如果s当前的一个字符或者之后的一个字符和当前t的尾巴是一样的,那么优先选哪一个,其实这个就要优先选t的
class Solution {
public:string robotWithString(string s) {string ans;int cnt[26]{}, min = 0; // min 表示剩余最小字母for (char c : s) ++cnt[c - 'a'];stack<char> st;for (char c : s) {--cnt[c - 'a'];while (min < 25 && cnt[min] == 0) ++min;st.push(c);while (!st.empty() && st.top() - 'a' <= min) {ans += st.top();st.pop();}}return ans;}
};
学一下别人的思路,自己写的代码太长了