查找子串/后缀等之间对齐的最高分数

问题描述

所以我正在完成我的任务,但遇到了一个我无法真正用谷歌搜索的问题。我真的不明白这些问题在问我什么,因为他们看起来都在向我提出同样的问题。以下是问题:

X=QRSWCHAW Y=WHLAWT

1.解释我们如何在我之前计算的矩阵中找到 X 的子字符串和整个字符串 Y 之间对齐的最高分数。写下 X 的子串和字符串 Y 之间的最佳对齐方式。
2.解释我们如何在你在(a)部分计算的矩阵 F 中找到 X 的后缀和整个字符串 Y 之间对齐的最高分数。写下 X 的后缀和字符串 Y 之间的最佳对齐方式。
3.解释我们如何在你在(a)部分计算的矩阵 F 中找到 X 的子串和 Y 的前缀之间对齐的最高分数。写出 X 的子串和 Y 的前缀之间的最佳对齐方式。

所有这些都只值 2 分,所以我不知道是不是我想多了这个问题。如果有人可以解释我被要求做什么。他们需要代码还是简单的单词解释?最好是通过例子,因为我在互联网和书籍上到处找,但没有找到任何东西。

我认为这些会为所有问题提供相同的对齐方式。我可以通过回溯找到它吗?还是我需要做局部对齐?

解决方法

我不知道你的分数和对齐方式是什么,但我可以告诉你这些问题有什么不同。

  • 子字符串是从任何位置到任何其他位置的字符串中的一个块。所以 SWCHQRSWCHAW 的子串。您可以使用 2 个数字指定它,即开始位置和结束位置。
  • 后缀从某处开始并结束。所以 WCHAWQRSWCHAW 的后缀。您可以用 1 个数字指定它,即开始位置。
  • 前缀从开头开始,然后在某处结束。所以 WHLWHLAWT 的前缀。您可以用 1 个数字指定它,即结束位置。

这样你的问题都可以写成嵌套循环来运行所有的可能性,然后在中间调用一个函数来获得分数。跟踪迄今为止看到的最好成绩。