题解 AT2201 【鏡文 / Mirror String】 发表于 2019-03-10 | 更新于 2019-06-25 | 评论数: | 阅读次数: 本文字数: 782 | 阅读时长 ≈ 1 分钟 一道简单的字符串模拟,刷难度真给力 本蒟蒻的思路比较麻烦,但个人认为比较好理解 1 先将字符串倒序存放 2 按照规则改变字母 3 比较 Code:1234567891011121314151617181920212223242526272829303132333435363738394041#include<bits/stdc++.h>using namespace std;char s1[100010],s2[100010];int len;int main(){ cin>>s1; for(int i=strlen(s1)-1; i>=0; i--) { s2[len++]=s1[i];//倒序存放 } for(int i=0; i<strlen(s2); i++) { switch(s2[i])//按照规则改变字母 { case 'b': { s2[i]='d'; break; } case 'd': { s2[i]='b'; break; } case 'p': { s2[i]='q'; break; } case 'q': { s2[i]='p'; break; } } } if(strcmp(s1,s2)==0) cout<<"Yes"<<endl;//比较,注意如果两个字符串一样,strcmp返回0 else cout<<"No"<<endl;//记得换行 return 0;}