京东客户端第二题,一直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; }
#京东##笔试题目#