题解 AT2201 【鏡文 / Mirror String】

一道简单的字符串模拟,刷难度真给力

本蒟蒻的思路比较麻烦,但个人认为比较好理解

  • 1 先将字符串倒序存放

  • 2 按照规则改变字母

  • 3 比较

Code:

#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;
}

posted @ 2019-10-06 22:55  zyx_00  阅读(142)  评论(0编辑  收藏  举报