3298. 排队买夜宵

CodingMe

求0 和 1 的个数差

10185102105

感谢!

genghi

“每当有一个人排到队伍的末尾”。。。
//别信这句话

10185102105

我信了它的邪,坑死了

mansoup

这题给我处理问题启发:从最终导致结果看问题

Fifnmar

楼上的栈做法可以写短一点

#include "bits/stdc++.h"
using namespace std;
using u32 = uint32_t;

int main() {
  u32 t;
  cin >> t;
  string str;
  vector<char> seq;
  for (u32 _ = 0; _ != t; ++_) {
    cin >> str;
    seq.resize(1, 0); // 用来去掉判空检测的哨兵
    for (auto ch : str) {
      if ((ch ^ seq.back()) == 1) {
        seq.pop_back();
      } else {
        seq.push_back(ch);
      }
    }
    cout << seq.size() - 1 << '\n';
  }
}
柴柴柴拆柴柴

不是很难的题目,可以试着用栈模拟一下

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int cases;
    int* anslist;

    scanf("%d",&cases);
    anslist=(int*)malloc(cases*sizeof(int));

    for(int i=0;i<cases;i++)
    {
        char mystr[1001];
        stack<char> mystack;
        unsigned int len;

        scanf("%s",mystr);
        len=strlen(mystr);
        for(unsigned int j=0;j<len;j++)
        {
            if(mystack.empty())
                mystack.push(mystr[j]);
            else
            {
                if(mystack.top()!=mystr[j])
                    mystack.pop();
                else!
                    mystack.push(mystr[j]);
            }
        }

        anslist[i]=mystack.size();
    }

    for(int i=0;i<cases;i++)
        cout<<anslist[i]<<endl;

    return 0;
}
你当前正在回复 博客/题目
存在问题!