P1101 单词方阵

这篇博客介绍了P1101编程问题,任务是标记出单词矩阵中所有按8个方向排列成'yizhong'的单词。解题策略是从'y'开始,检查其周围八个方向,如果找到7个字符的'yizhong',则用'*'替换非'yizhong'的字符。文章提供了search函数的详细说明,用于判断特定方向上是否存在'yizhong'单词。
摘要由CSDN通过智能技术生成

题目链接

P1101 单词方阵

题目梗概

给出一个单词矩阵,将矩阵中的所有”yizhong“标记出来,“yizhong”的排列方向有八个,即以y为中心起点向(上,右上,右,右下,下,左下,左,左上)排列。
输出时,除“yizhong”之外的字符都输出为*。

解题思路

找到起点y,然后以y为中心,分别判断八个方向上的单词是否为“yizhong”即可。

函数功能

  • search(dr, dc, r, c);
    为简化代码,写了该函数,可以搜索判断指定方向上的单词。
    参数 r, c 代表搜索起点坐标,即y的坐标。
    参数dr, dc 代表搜索方向,也是搜索过程中,行列坐标的变化量。
    例如,当向上搜索时,行坐标保持不变,列坐标依次递减,所以dr = -1, dc = 0;
    当向左下搜索是,行坐标依次递增,列坐标依次递减,所以dr = 1,dc = -1;

在搜索前,先判断一下该方向上的字符数是否有7个("yizhong"7个字符)。如果够,则进行搜素。
搜索完成后,如果该方向上的字符串是“yizhong”则对这些字符位置进行标记,方便最后输出。

完整代码

#include <iostream>
using namespace std;
char d[100][100];
int v[100][100];
string s = "yizhong";
int n;
void search(int dr, int dc, int r, int c){
   
	bool flag = true;
	
	if(r + 6 * dr < 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值