C++ 代码优化:查找并移除矩阵中的包含关系
#include<bits/stdc++.h>
using namespace std;
char a[101][101];
int n,m,xx,yy,ll,flag=1;
int f1(){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j]=='.')continue;
int l1=0,l2=0;
while(a[i+l1][j]!='.'&&i+l1<=n)l1++;
while(a[i][j+l2]!='.'&&j+l2<=m)l2++;
cout<<i<<' '<<j<<' '<<min(l1,l2)<<endl;
xx=i;yy=j;ll=min(l1,l2);
return 0;
}
}
}
int f2(){
for(int i=n;i;i--){
for(int j=m;j;j--){
if(a[i][j]=='.')continue;
int l1=0,l2=0;
while(a[i-l1][j]!='.'&&i-l1!=0)l1++;
while(a[i][j-l2]!='.'&&j-l2!=0)l2++;
flag=0;
cout<<i-max(l1,l2)+1<<' '<<j-max(l1,l2)+1<<' '<<max(l1,l2);
return 0;
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j];
f1();
for(int i=0;i<ll;i++){
for(int j=0;j<ll;j++){
a[xx+i][yy+j]='.';
}
}
f2();
if(flag){
cout<<xx<<' '<<yy<<' '<<ll<<endl;
}
return 0;
原文地址: http://www.cveoy.top/t/topic/qvak 著作权归作者所有。请勿转载和采集!