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

这道题笔试太着急没完全模拟出来有点难受,现在补一下。
题目:删除字符串中的字符使得最后的字符串中没有连续重复的字符。字符为空则输出“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;
}


#友塔游戏#
全部评论
收到面试了吗,我想到是单调栈了忘了继续去重。。。。 比如abbb。。😂反正太久没做算法心态有点炸
1 回复
分享
发布于 2022-08-05 12:54
老哥你还记得第四题是什么吗,我看他们面试都要复盘笔试,忘记第四题是什么了
1 回复
分享
发布于 2022-08-29 15:06 浙江
滴滴
校招火热招聘中
官网直投
笔试的时候紧张的都写不出来
点赞 回复
分享
发布于 2022-08-05 11:18
问一下楼主收到面试了吗?
点赞 回复
分享
发布于 2022-08-17 17:35 辽宁

相关推荐

点赞 评论 收藏
转发
3 5 评论
分享
牛客网
牛客企业服务