• uva 10010 Where's Waldorf?


    这道题目真是让我错的真是欲哭无泪啊,在这里我还是要感慨一下我的英语水平,那些意思我实在看不很明确,导致我在小细节上连续出错,我受不了了

    这道题目也就涉及了一点点算法的知识,更多的是字符串处理的掌握。不过如果你对与字符串的库函数掌握的更广一些的话,你就可以省去一些麻烦了,给大家介绍个网站,字符串处理的库函数

    http://zhwen.org/tools/clib/string/bcmp.html 就在这个网站上

    下面贴上我的代码

    View Code
    //代码就在下面了,相信不用我过多的介绍,聪明的你一定会看懂,而且会优化代码
    #include<stdio.h>
    #include<string.h>
    #include<ctype.h>
    const int x[] = {0,-1,-1,-1,0,1,1,1},y[] = {-1,-1,0,1,1,1,0,-1};
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--)
        {
            int i, j, l, r, m, n, len, cases, t, k;
            char st[60][60], s[60];
            scanf("%d%d",&m,&n);
            getchar();
            for(i = 0;i < m; i++)
            {
                gets(st[i]);
                len = strlen(st[i]);
                for(j = 0;j < len; j++)
                    // 字符串处理函数,将小写字母转化为大写字母,此函数包含在'ctype.h'中
                st[i][j] = toupper(st[i][j]);
            }
            scanf("%d",&cases);
            getchar();
            while(cases--)
            {
                gets(s);
                len = strlen(s);
                for(i = 0;i < len; i++)
                s[i] = toupper(s[i]);
                t = 0;
                for(i = 0;i < m; i++)
                {
                    for(j = 0;j < n; j++)
                    {
                        if(st[i][j] == s[0])
                        {
                           for(k = 0;k < 8; k++)
                           {
                               for(l = i,r = j, t = 0;l >= 0 && r >= 0 && l < m && r < n;l += x[k],r += y[k],t++)
                               {
                                   if(st[l][r] != s[t])
                                   break;
                                   if(t == len-1)
                                   {
                                       printf("%d %d\n",i+1,j+1);
                                   }
                               }
                               if(t == len) break;
                           }
                        }
                        if(t == len) break;
                    }
                    if(t == len) break;
                }
            }
            if(T)
                printf("\n");
        }
        return 0;
    }
  • 相关阅读:
    获取服务结合随机算法
    服务发现
    使用第三方库来支持平滑重启
    简易配置中心Confd入手
    8、SQL基础整理(约束)
    7、SQL基础整理(子查询)
    6、SQL基础整理(日期时间数据类型,转换函数)
    5、SQL基础整理(字符串函数)
    4、SQL基础整理(规范函数)
    3、SQL基础整理(分组)
  • 原文地址:https://www.cnblogs.com/SDUTYST/p/2524579.html
Copyright © 2020-2023  润新知