念两句诗

千古斜阳,无处问长安。
【宋代】张舜民《江神子·癸亥陈和叔会于赏心亭》

 

输入:输入矩阵长/宽度n,和目标字符串str,再 输入n*n的字符矩阵;

求解:给出字符矩阵中 横向和纵向匹配字符串str的个数

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4     int n,res=0;
 5     char ch;
 6     string str;
 7     cin >> n;
 8     cin >>str;
 9     vector<vector<char>> tab;
10     for (int i = 0; i < n;i++)
11     {
12         vector<char> s;
13         for (int j = 0; j < n;j++){
14             cin >> ch;
15             s.push_back(ch);
16         }
17         tab.push_back(s);
18     }
19     int len = str.size();
20     for (int i = 0; i < n;i++){
21         for(int j = 0;j<n;j++){
22             for (int k = 0; i+k < n ;k++){  //down
23                 if(str[k]!=tab[i+k][j])break;
24                 if(k==len-1){
25                     res++;
26                 }
27             }
28             for (int k = 0; j+k < n;k++){ //right
29                 if(str[k]!=tab[i][j+k])break;
30                 if(k==len-1){
31                     res++;
32                 }
33             }
34         }
35     }
36     cout << res;
37     return 0;
38 }

输入:

3 abc
xax
abc
xcx

输出:

2

 第二行和第二列都是 :abc

 

思想:暴力解法,遍历每一个点

posted on 2022-03-23 17:24  昔九  阅读(47)  评论(0)    收藏  举报