首页 > 友塔游戏笔试第一题--辅助栈
头像
牛客666666666666666666676号
发布于 2022-08-05 00:10
+ 关注

友塔游戏笔试第一题--辅助栈

这道题笔试太着急没完全模拟出来有点难受,现在补一下。
题目:删除字符串中的字符使得最后的字符串中没有连续重复的字符。字符为空则输出“NULL”
如输入:“abba” ,输出“NULL”;
输入:“abbc” ,输出“ac”;

int main()
{
    string s;
    cin >> s;
    int n = s.size();
    stack<char> stk;
    for (int i = 0; i < n; ++i) {
        if (!stk.empty() && s[i] == stk.top()) {
            stk.pop();
            char c = s[i];//没往右继续删除出错
            while (i < n && s[i] == c)++i;
            --i;//没--i出错
        }
        else stk.emplace(s[i]);
    }
    if (stk.empty()) {
        cout << "NULL" << endl;
        return 0;
    }
    else {
        int k = stk.size();
        string ans;
        for (int i = 0; i < k; ++i) {
            ans.insert(ans.begin(), stk.top());
            stk.pop();
        }
        cout << ans << endl;
    }
    return 0;
}


全部评论

(4) 回帖
加载中...
话题 回帖