Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
1.1 kB
3
Indexable
//string operation 2
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#include<stdbool.h>

int main(){
    char s[1000005];
    int q,arr[26]={0};
    int op[100005];
    char a[100005],b[100005];
    int a2[10005];
    bool changed[100005] = {false};

    scanf("%s%d",s,&q);
    int len = strlen(s);
    for(int i=0; i<26; i++) {
        arr[i] = i+97;
    }

    for(int i=0; i<q; i++){
        scanf("%d", &op[i]);
        if(op[i] == 1) {
            scanf(" %c %c", &a[i], &b[i]);
        }
        else {
            scanf("%d %c", &a2[i], &b[i]);
        }
    }

    for(int i=q-1; i>=0; i--){
        if(op[i] == 1) {
            arr[a[i] - 'a'] = arr[b[i] - 'a'];
        }
        else {
            if(changed[a2[i]] == false) {
                changed[a2[i]] = true;
                s[a2[i]] = arr[b[i]-'a'];
                //printf("A%c", arr[b[i]-'a']);
            }
        }
    }

    for(int i=0; i<len; i++) {
        if(!changed[i])
            printf("%c", arr[s[i]-'a']);
        else
            printf("%c", s[i]);
    }
    printf("\n");
    
}