Thay xâu


Submit solution

Points: 3 (partial)
Time limit: 1.0s
JAVA11 2.0s
Pypy 3 2.0s
Memory limit: 67M
JAVA11 977M
Pypy 3 977M

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

Cho một xâu kí tự \(X\), thực hiện những truy vấn sau trên xâu \(X\):

\(R\:a\:b\), thay mọi kí tự \(a\) bằng kí tự \(b\).

\(D\:a\), xóa tất cả những kí tự \(a\).

Đầu vào

Dòng đầu tiên chứa duy nhất một xâu độ dài không quá \(10^6\), chỉ gồm toàn các chữ cái thường tiếng Anh.

Dòng tiếp theo chứa số nguyên \(q\) \((1 \le q \le 10^6)\) số lần truy vấn cập nhật.

\(q\) dòng cuối cùng mỗi dòng chứa một truy vấn theo định dạng như trên.

Đầu ra

Một xâu duy nhất.

Subtask

\(30\%\) số test có xâu độ dài không quá \(2000\).

Ví dụ

Đầu vào:

zaaaabnnzhnhz 
3
R a b
R b z
D z

Đầu ra:

nnhnh

Giải thích:

  • Sau truy vấn đầu tiên xâu đã cho trở thành \(zbbbbbnnzhnhz\).
  • Sau truy vấn thứ hai xâu trở thành \(zzzzzznnzhnhz\).
  • Sau truy vấn cuối cùng xâu trở thành \(nnhnh\).
QDUY

Comments


  • 0
    hairep2005  commented on Nov. 3, 2024, 1:01 a.m.

    include<bits/stdc++.h>

    define Haidz2005 ios::sync_with_stdio(false); cin.tie(NULL);

    using namespace std;

    int main(){ Haidz2005

    map<char,int> mp ; 
    
    string s; cin>> s; 
    
    for(char c: s){
    
        mp[c]++ ; 
    
    }
    int q; cin>> q; 
    
    while(q--){
    
        char x ; cin>> x; 
    
        if(x=='R'){
    
            char a , b ; cin>> a >> b ;
    
            if(mp[a]> 0){
    
                mp[b] += mp[a] ; 
    
                mp[a] = 0 ;
    
            } 
    
        }
        else{
    
            char n; cin>> n; 
    
            mp[n] = 0 ; 
    
        }
    }
    
    for(char c: s){
    
        if(mp[c]>0){
    
            cout<<c ; 
    
            mp[c]-- ; 
        }
    }

    } mnguoi cho mik hỏi bài này mik dùng cách này tại sao lại sai hết thế nhỉ , mik test mấy test dài thì nó đều trả ra kết quả đúng