10010

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <ctype.h>


using namespace std;
#define maxnsize 55
int n,m;
char gird[maxnsize][maxnsize];
int ansx, ansy;
bool check(char *s)
{
    int i,j,k,l;
    int len = strlen(s);
    int cnt  = 0;
    ansx = 0;
    ansy = 0;


    for( i = 0; i < n; i++)
    {
        for( j = 0; j< m; j++)
        {


            if(gird[i][j] == s[0])
            {
                ansx = i + 1;
                ansy = j + 1;
                cnt = 0;


                if(m  - j >= len)//same row ->
                {


                    for(  k = j, cnt = 0; k < j + len; k++)
                    {if(s[cnt] != gird[i][k])
                            break;
                            cnt++;
                    }
                    if(cnt == len)
                        return true;
                }


                if( j + 1 >= len)//same row <-
                {


                    for(  k = j,cnt = 0; k >= j + 1 - len; k--)
                     {
                         {if(s[cnt] != gird[i][k])
                            break;
                            cnt++;
                          }
                     }
                    if(cnt == len)
                        return true;


                }


                if( n - i >= len)//same c
                {


                    for(  k = i, cnt = 0; k < i + len; k++)
                       {
                          {if(s[cnt] != gird[k][j])
                            break;
                            cnt++;
                          }
                       }
                    if(cnt == len)
                        return true;
                }


                if(  i + 1 >= len)//same c
                {
                    for(  k = i,cnt = 0; k >= i + 1 - len; k--)
                       {
                           {if(s[cnt] != gird[k][j])
                            break;
                            cnt++;
                          }
                       }
                    if(cnt == len)
                        return true;


                }


                if(n - i >= len && m - j >= len)
                {
                    l = i, k = j;


                    for( cnt = 0; cnt < len; cnt++)
                    {
                        {if(s[cnt] != gird[l][k])
                            break;
                            l++,k++;
                          }


                    }
                    if(cnt == len)
                        return true;
                }


                if(i + 1 >= len &&  j + 1 >= len)
                {
                    for(  k = j,l = i, cnt = 0; cnt <len ; k--, l--)
                       {
                           if(s[cnt] != gird[l][k])
                            break;
                        cnt++;
                       }
                    if(cnt == len)
                        return true;


                }
                 if(n - i >= len &&  j + 1 >= len)
                {
                   l = i, k = j;
                    for( cnt = 0; cnt < len; cnt++)
                    {
                        if(s[cnt] != gird[l][k])
                            break;
                          l++,k--;
                    }
                    if(cnt == len)
                        return true;
                }


                  if(i + 1 >= len &&  m - j>= len)
                {
                   l = i, k = j;
                    for( cnt = 0; cnt < len; cnt++)
                    {
                        if(s[cnt] != gird[l][k])
                            break;
                            l--;
                            k++;


                    }
                    if(cnt == len)
                        return true;
                }
            }
        }
    }
    return false;
}


int main()
{
    int t, q;
    char que[maxnsize];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d %d",&n, &m);


        for( int i = 0; i<n; i++)
            scanf("%s",gird[i]);
        for( int i = 0; i<n; i++)
         for( int j = 0; j<m; j++)
          gird[i][j] = tolower(gird[i][j]);
        scanf("%d",&q);


        while(q--)
        {
            scanf("%s",que);
            for( int i = 0; que[i] != '\0'; i++)
                que[i] = tolower(que[i]);
            if(check(que))
            {
                printf("%d %d\n",ansx, ansy);
            }
        }
      if(t)
         printf("\n");
    }
    return 0;
}
在Verilog中实现10010的方法有很多种。根据提供的引用内容,我找到了三个不同的测试代码示例,分别是seqdet_tb、seqdet_tb和check_10010_tb。这些测试代码中都包含了时钟信号、复位信号和数据输入输出信号。其中,seqdet_tb和seqdet_tb模块中使用了seqdet模块来实现10010的检测,而check_10010_tb模块中使用了check_10010模块来实现。具体的实现细节需要根据具体的模块代码来确定,这里只提供了测试代码的示例。 #### 引用[.reference_title] - *1* [(09)Verilog实现序列检测器10010](https://blog.csdn.net/m0_46498597/article/details/127288553)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [用verilog描述状态机+序列检测器10010](https://blog.csdn.net/m0_51403396/article/details/119115499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Verilog语言实现可重叠序列检测器(10010)(Mealy型和Moore型)](https://blog.csdn.net/Ed_Lee/article/details/106341312)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值