京东客户端第二题,一直9% 到底哪错了 求大神解答
测试用例
1//一组数据
2 2//行和列数
#E//#是障碍物,不可走 E是开始S是结束
S#
#include <string.h>
#include <stdio.h>
#include<iostream>
#include<vector>
#include <sstream>
#include <algorithm>
using namespace std;
bool cando(vector<vector<char>> a,int sx,int sy,int ex,int ey){
//cout<<"find "<<sx<<" "<<sy<<endl;
if(sx==ex&&sy==ey)
return true;
if(sx<0||sx>=a.size()||sy<0||sy>=a[0].size()||a[sx][sy]!='.')
return false;
char temp=a[sx][sy];
a[sx][sy]='#';
bool res=cando(a,sx+1,sy,ex,ey)||cando(a,sx-1,sy,ex,ey)||cando(a,sx,sy+1,ex,ey)||cando(a,sx,sy-1,ex,ey);
a[sx][sy]=temp;
return res;
}
int main(){
int t;
cin>>t;
int tt=t;
vector<string> res_s;
while(t--){
int n,m;
cin>>n>>m;
vector<vector<char>> a;
int i,j;
int sx,sy,ex,ey;
for(i=0;i<n;i++){
vector<char> temp;
for(j=0;j<m;j++){
char tt;
cin>>tt;
temp.push_back(tt);
if(temp[j]=='S'){
sx=j;
sy=i;
temp[j]='.';
}
if(temp[j]=='E'){
ex=j;
ey=i;
temp[j]='.';
}
}
a.push_back(temp);
}
//cout<<a.size()<<" "<<a[0].size()<<endl;
//cout<<sx<<" "<<sy<<" "<<ex<<" "<<ey<<endl;
if(cando(a,sx,sy,ex,ey))
res_s.push_back("YES");
else res_s.push_back("NO");
}
for(int i=0;i<res_s.size();i++)
cout<<res_s[i]<<endl;
} #京东##笔试题目#