NC14708. 小猪佩奇练打字
描述
输入描述
第一行输入一个字符串S ( 1 <= |S| <= 105);
第二行输入一个数字m(1 <= m <= 105), 表示佩奇要操作m次。
之后有m行, 每行有两个字母 c1, c2 表示佩奇要把这两个键帽互换位置。
输出描述
输出一行字符串, 即佩奇用乔治玩坏的键盘输出的实际字符串。
示例1
输入:
helloworld 3 e o h z l p
输出:
zoppewerpd
C++(g++ 7.5.0) 解法, 执行用时: 20ms, 内存消耗: 696K, 提交时间: 2023-04-21 16:40:22
#include<bits/stdc++.h> using namespace std; int w[26]; string str; signed main() { cin>>str; for(int i=0;i<26;i++)w[i]=i; int m; cin>>m; while(m--) { char c,p; cin>>c>>p; swap(w[c-'a'],w[p-'a']); } for(int i=0;i<str.size();i++)cout<<char('a'+w[str[i]-'a']); }
C++14(g++5.4) 解法, 执行用时: 43ms, 内存消耗: 1244K, 提交时间: 2020-06-27 18:23:31
#include<bits/stdc++.h> using namespace std; map<char,char>mp; int main() { string a; char x,y,s; int n,i; cin>>a>>n; for(i='a';i<='z';i++) mp[i]=i; for(i=1;i<=n;i++) { cin>>x>>y; s=mp[x]; mp[x]=mp[y]; mp[y]=s; } n=a.size(); for(i=0;i<n;i++) printf("%c",mp[a[i]]); }
C++(clang++11) 解法, 执行用时: 18ms, 内存消耗: 656K, 提交时间: 2022-04-04 23:06:49
#include<bits/stdc++.h> using namespace std; int main(){ string s; int m;cin>>s>>m; char mp[26]; for (int i=0;i<26;i++)mp[i]=i+'a'; while(m--){ char a,b;cin>>a>>b; swap(mp[a-'a'],mp[b-'a']); } for (char i:s) cout<<mp[i-'a']; cout<<endl; }
Python3 解法, 执行用时: 397ms, 内存消耗: 5972K, 提交时间: 2023-05-29 09:39:17
d={} for x in 'qazxswedcvfrtgbnhyujmkiolp': d[x]=x s=input() for _ in range(int(input())): a,b=input().split() d[a],d[b]=d[b],d[a] t='' for x in s: t+=d[x] print(t)