atcoder ABC199 C - IPFL の勉強
・考え方:前半後半に文字列を分ける。あとはa,bがどちらに属するかで変換を変える。文字やリストの交換は任意のx,y(文字、リストなど)に対してx,y=y,xと書ける。
・参考:
【AtCoder解説】PythonでABC199のA,B,C問題を制する! - Qiita
n=int(input()) s=input() q=int(input()) l1=list(s[:n]) l2=list(s[n:]) for _ in range(q): t,a,b=map(int,input().split()) a-=1 b-=1 if t==1: #a,bが文字列の前半後半どちらに属するかで交換を変える。 if a<n and b<n: l1[a],l1[b]=l1[b],l1[a] elif a<n and b>=n: l1[a],l2[b-n]=l2[b-n],l1[a] elif a>=n and b<n: l2[a-n],l1[b]=l1[b],l2[a-n] else: l2[a-n],l2[b-n]=l2[b-n],l2[a-n] else: l1,l2=l2,l1 ans=''.join(l1+l2) print(ans)