标签:
#include<iostream> #include<cctype> #include<algorithm> using namespace std; char a[55][55]; string s[22]; int T,m,n,k; int mx[] = {1, 1, 1, 0, 0, -1, -1, -1}; int my[] = {1, 0, -1, 1, -1, 1, 0, -1}; bool in(int x,int y){ return x>=1&&x<=m&&y>=1&&y<=n; } void getLocation(string s){ int flag ; for(int i = 1; i <= m; i++){ for(int j = 1; j <= n; j++){ if(a[i][j] == tolower(s[0])){ for(int k = 0; k < 8; k++){ flag = 1; int t1 = i,t2 = j; for(int p = 1; p < s.length(); p++){ t1 += mx[k]; t2 += my[k]; if(a[t1][t2] != tolower(s[p]) || !in(t1,t2)) { flag = 0; break; } } if(flag){ cout << i << " " << j << endl; return; } } } } } } int main(){ cin >> T; while(T--){ cin >> m >> n; cin.ignore(); for(int i = 1; i<= m; i++) for(int j = 1; j <= n; j++){ cin >> a[i][j]; a[i][j] = tolower(a[i][j]); } cin >> k; cin.ignore(); for(int i = 0; i < k; i++) cin >> s[i]; for(int i = 0; i < k; i++){ getLocation(s[i]); } if(T>0) cout << endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/yong-hua/p/4649966.html