Bàn phím của Rambo


Submit solution

Points: 1
Time limit: 1.0s
Memory limit: 250M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Rambo có một chiếc bàn phím rất đặc biệt, nó chỉ có 3 phím là 0, 1 và backspace. Rambo đang viết một đoạn tin nhắn cho Mixi (đoạn tin nhắn này có thể rỗng) bằng chiếc bàn phím đặc biệt này. Đoạn tin nhắn ban đầu là rỗng, sau đó khi anh ta bấm các phím tương ứng sẽ có các thay đổi tương ứng như sau:

  • khi bấm phím 0 : một chữ số 0 sẽ được thêm vào bên phải của đoạn tin nhắn.
  • khi bấm phím 1 : một chữ số 1 sẽ được thêm vào bên phải của đoạn tin nhắn.
  • khi bấm phím backspace : nếu đoạn tin rỗng thì không có sự thay đổi nào và ngược lại thì sẽ xóa một ký tự ngoài cùng bên phải của đoạn tin.

Bạn sẽ được cung cấp một chuỗi là tổ hợp các phím mà Rambo đã bấm tương ứng như sau: chữ số 0 tương ứng bấm phím 0, chữ số 1 tương ứng bấm phím 1, chữ cái B tương ứng bấm phím backspace. Bạn hãy cho biết đoạn tin sau khi Rambo soạn thảo.

Input:

  • Một dòng duy nhất là chuỗi S (độ dài không quá 10) chỉ chứa '0' , '1' , 'B'

Output:

  • In ra đoạn tin nhắn sau khi soạn thảo

Example:

Input 1:

01B0

Output 1:

00

Giải thích

Các thay đổi lần lượt là "0" -> "01" -> "0" -> "00"


Comments


  • 0
    ReLIFE  commented on Feb. 1, 2023, 9:53 a.m. edited

    Mọi người cho em hỏi tại sao em lại bị sai test 7, 9, 10 ạ?

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        string s;
        cin >> s;
        s[s.size()] = '\0';
        stack<char> r;
        for(long i=0; i<s.size(); i++){
            if(s[i]!='B') r.push(s[i]);
            else if(!r.empty() && s[i]=='B') r.pop();
            else continue;
        }
        while (!r.empty()) 
        { 
            cout << r.top(); 
            r.pop(); 
        } 
        return 0;
    }

    • 6
      khiemveryimportantpersonprofessional  commented on Feb. 1, 2023, 1:15 p.m.

      Bạn thử ví dụ Input BB01 thì OUT sẽ là 10 trong khi chính xác sẽ là 01. Cái vấn đề ở đây là bạn dùng stack nên bạn xem dùng ctdl khác nhé.


      • 0
        Phan_Dinh_Manh_RobotAI_K64  commented on Oct. 15, 2023, 2:50 p.m.

        Tim tim cho anh ạ Đỉnh


      • 0
        ReLIFE  commented on Feb. 2, 2023, 3:53 a.m.

        mình làm được rồi, cảm ơn bạn nhiều ^^