【发布时间】:2013-07-23 13:09:16
【问题描述】:
我正在为这样的文件制作解析器:
intrepideg
xtdcvmhgze
yrwhoejkpn
minusculet
isnqdhivpi
ntznyafhel
ceamgnqgug
erpoxtavrf
gwaupsgwsd
kyqtendrme
这个想法是从用户那里接收一个字符串,然后在水平、垂直和对角线上搜索它。 我与对角线方式斗争,因为我寻找最佳方式来减少迭代。 我应该从双数组的每个角开始做 4 个通道,找到双数组的中间,然后从开始做 2 个通道吗?什么是最好的算法?
这是我程序的核心功能:
t_inco search_all(t_inco inco)
{
int i;
int f;
int j;
i = 0;
f = 0;
j = 0;
while (inco.map[i])
{
while(inco.map[i][f])
{
if (inco.map[i][f] == inco.wd[0])
{
if(find_cases_h(inco, i, f))
{
inco = get_cases(inco, i, f, 1);
return(inco);
}
else if(find_cases_v(inco, i, f))
{
inco = get_cases(inco, i, f, 2);
return(inco);
}
else if(find_cases_d(inco, i, f))
{
inco = get_cases(inco, i, f, 3);
return(inco);
}
}
f++;
}
i++;
f = 0;
}
return(inco);
}
【问题讨论】: