博客
关于我
String- 单词方阵
阅读量:548 次
发布时间:2019-03-09

本文共 853 字,大约阅读时间需要 2 分钟。

技术员编写的代码解析:

在给定的C代码中,我们可以看到它是一个用于二维字符匹配的程序。这个程序的主要功能是读取一个方阵的大小n,然后读取n个长度为n的字符串,并在其中找到字符串"yizhong"的所有起始位置,并将这些位置标记在book数组中。最终程序会输出标记和未标记的字符。

程序的核心是machining函数,它尝试在给定的位置(x, y)周围寻找"yizhong"的匹配。假设我们已经正确初始化了数组和函数,那么程序可以正常工作。现在我们从输入处理到输出处理的流程进行解析。

程序首先读取方阵的大小n,并处理回车符。接着,读取n个字符串,并将它们存储在二维数组a中。然后,使用一个char数组c存储"yizhong"。

接下来,程序使用book数组记录起始点和与之相连的"yizhong"字符的位置。通过遍历每一个字符(i, j),如果字符等于c[0],即'y',则调用machining函数。

在machining函数中,我们想要找到从(i, j)开始的"yizhong"。我们需要使用一个数组next来表示8个方向。对于每一个方向,我们沿着方向移动6步,并检查每一步的字符是否与c数组中的对应字符匹配。如果在移动6步过程中遇到字符不匹配或越界,则提前退出循环。

如果我们能够移动6步并且字符全部匹配,那么说明在(i, j)处存在"yizhong"。此时,我们需要标记起始点(i, j)以及接下来的6个字符位置到book数组中,以表示这些字符都是"yizhong"的部分。

在编写程序时要注意数组索引的问题,因为n可能会很大,但是在这个例子中,n的大小 limit 被正确处理。在输出阶段,我们检查book数组是否标记并输出相应的字符或星号。

虽然程序看起来正确,但需要注意数组越界的情况,并确保所有的字符都被正确处理。另外,在主函数中,我们调用machining函数的次数需要控制好,否则会导致性能问题。

总结来说,这段代码完成了一个简单的二维字符匹配任务,不过可以优化代码结构和错误处理部分。

转载地址:http://vvzsz.baihongyu.com/

你可能感兴趣的文章
php根据年月日计算年龄
查看>>
RabbitMQ - 单机部署(超详细)
查看>>
php检查注册,PHP检查注册的电子邮件地址是一个’school.edu’地址
查看>>
php模拟发送GET和POST请求
查看>>
RabbitMQ - 以 MQ 为例,手写一个 RPC 框架 demo
查看>>
php模板引擎smarty
查看>>
php正则表达式模式
查看>>
php正则表达式的特殊字符含义
查看>>
PHP正则表达式获取武汉市的实时pm2.5数据并邮件发送phpmailer
查看>>
RabbitMQ + JMeter组合,优化你的中间件处理方式!
查看>>
PHP水仙花问题解法之一
查看>>
php没有解析是怎么回事,linux下php文件没有被剖析怎么办?_后端开发
查看>>
php注册页面实现注册后跳转页面
查看>>
PHP消息队列的实现方式与详解,值得一看
查看>>
PHP混合Go协程并发
查看>>
php源码中如何添加滚动公告,给WordPress网站添加滚动公告的方法
查看>>
PHP源码安装后如何新增模块
查看>>
php源码详细安装步骤,linux下php源码安装步骤
查看>>
php漏洞tips
查看>>
php版Zencoding之 phpstorm
查看>>