# 12605 - Rebranding > author: tangerine1202 ###### tags: `csst` --- ## Brief :::info ## Keyword List 英文 | 中文 | 補充或連結 --------|--------|-------- ::: ## Solution - `char map[30]`:原始字串中的字元`a~z`對應至字元`map[0~25]` - `int alpha_idx[30]`:紀錄目前`a~z`目前在`map`中所在的index ```c #include <stdio.h> #define maxn 200005 char s[maxn]; int alpha_idx[30]; char map[30]; void swap_int(int* a, int* b); void swap_char(char* a, char* b); int main(){ int n, m; char c1, c2; for(int i=0; i<26; ++i){ alpha_idx[i] = i; map[i] = (char)('a'+i); } scanf("%d %d", &n, &m); scanf("%s", s); for(int i=0; i<m; ++i){ scanf(" %c %c", &c1, &c2); swap_char(&map[alpha_idx[c1-'a']], &map[alpha_idx[c2-'a']]); swap_int(&alpha_idx[c1-'a'], &alpha_idx[c2-'a']); } for(int i=0; i<n; i++){ printf("%c", map[s[i]-'a']); } printf("\n"); return 0; } void swap_int(int* a, int* b){ int tmp = *a; *a = *b; *b = tmp; } void swap_char(char *a, char *b){ char tmp = *a; *a = *b; *b = tmp; } // By tangerine1202 ``` ## Reference