文章

15

粉丝

446

获赞

2

访问

121.9k

头像
不必旋转的一个比较巧妙的方法
P1377 北京航空航天大学机试题
发布于2021年2月5日 15:31
阅读数 9.5k

按顺序去读取矩阵成为字符串,最后比较字符串是否相等

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool f(char a[][10],char b[][10],int n,int k)//k(Ðýת½Ç¶È) n(½×Êý)
{
	string sa="",sb="";
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			sa+=a[i][j];
	switch(k){
		case 0:{
			for(int i=1;i<=n;i++)
				for(int j=1;j<=n;j++)
					sb+=b[i][j];

			break;
		}
		case 90:{
			for(int j=n;j>=1;j--)
				for(int i=1;i<=n;i++)
					sb+=b[i][j];
			
			break;
		}
		case 180:{
			for(int i=n;i>=1;i--)
				for(int j=n;j>=1;j--)
					sb+=b[i][j];
		
			break;
		}
		case 270:{
			for(int j=1;j<=n;j++)
				for(int i=n;i>=1;i--)
					sb+=b[i][j];
			
			break;
		}
		default: ;
	}
	if(sa==sb)	return true;
	else	return false;
}
int main()
{
    int n;
    while(cin>>n)
    {
    	char a[10][10],b[10][10];
		int tag=0;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=n;j++)
    			cin>>a[i][j];
   ...
登录查看完整内容


登录后发布评论

2 条评论
N诺子言
2021年2月5日 17:47

一个潜在的问题,当a[i][j]过大时(如1000),应该无法通过s+=a[i][j]加入字符串进行存储。

赞(0)

N诺子言 : 回复 N诺子言: 将字符串s改为int 数组s即可解决

2021年2月5日 17:57