第四次作业

本次作业我与张盛兴同学(以下由张代替)采用了结对编程的方式完成了作业。

首先在第一步的时候我们就有了在方法上的一些分歧,张认为应找出出现在首字母位置频率较高的字母,这样每个角的顶点处便可使用该字母放置,这样便可在三个方向重均用到此字母,一定程度提高了字母的利用率。但是我认为,此方法虽然带来了一定的使用率,但是会造成长度较大的单词的优先级较低,然而长度大的单词需要更加苛刻的条件,所以应该有更高的优先级,在实际测试中也发现,往往会发生最长的单词无法加入矩阵的情况。最终决定结合我们两个的观点,在进行完角部的处理后,立马对于单词进行排序,按照单词的长度来添加单词。

此图为本程序最为核心的三个函数,函数ising是用来判断点是否在我们所定义的矩阵中,函数pd是判断能否将字符串加入矩阵中,而函数f是将字符串加入矩阵中

pd和f往往是组合使用,由于本题对于复杂度并没有要求,在完成了对于角部的处理后便按照单词的长度对于每一个点的八个方向进行了一次暴力搜索,然后完成最后的结果。

原文地址:https://www.cnblogs.com/nikeceo/p/3392195.html