String 字符串算法的后缀与动态规划

String 字符串算法的后缀与动态规划,string,algorithm,data-structures,tree,dynamic-programming,String,Algorithm,Data Structures,Tree,Dynamic Programming,似乎许多困难的字符串算法都可以通过后缀尝试(树)和动态规划来解决。 但我不确定哪种方法最适合使用以及何时使用。 此外,哪种方法更适合掌握特定领域的算法,并将其应用于工作面试领域?我认为它将是程序员在任何任务或类似任务中更经常使用的一个? 这是比简单比较渐近符号更有用的算法技巧。老实说,对于求职面试来说,不需要后缀树。这太难了,超出了范围。然而,DP在一些著名公司的面试中被广泛使用,比如谷歌和facebook 与DP相比,后缀树在解决问题方面有局限性。通常用于解决与字符串相关的问题。但是DP可以解

似乎许多困难的字符串算法都可以通过后缀尝试(树)和动态规划来解决。
但我不确定哪种方法最适合使用以及何时使用。
此外,哪种方法更适合掌握特定领域的算法,并将其应用于工作面试领域?我认为它将是程序员在任何任务或类似任务中更经常使用的一个?

这是比简单比较渐近符号更有用的算法技巧。老实说,对于求职面试来说,不需要后缀树。这太难了,超出了范围。然而,DP在一些著名公司的面试中被广泛使用,比如谷歌和facebook


与DP相比,后缀树在解决问题方面有局限性。通常用于解决与字符串相关的问题。但是DP可以解决许多不同的问题。

老实说,对于求职面试,不需要后缀树。这太难了,超出了范围。然而,DP在一些著名公司的面试中被广泛使用,比如谷歌和facebook


与DP相比,后缀树在解决问题方面有局限性。通常用于解决与字符串相关的问题。但是DP可以解决许多不同的领域。

考虑一个需要的问题:后缀数组正是您所需要的…并且很容易了解解决大多数涉及后缀数组的问题的基本要素。
另一方面,DP是一种算法技术。掌握它,您将能够解决大量问题。不仅仅是字符串。
对于面试,尽管我每天都会接受DP……对于面试官来说,DP问题让他们变得棘手,没有DP几乎不可能解决(在给定的限制条件下)但解决方案将意味着你给他们一个基本的递归,以及DP如何帮助你解决它。如果这是一个后缀数组唯一的问题,这将意味着他们在单个数据结构(简单易学)上评估你,而不是一个需要掌握的更一般的技术。


PS:我一直推迟学习DP,直到最近,当我厌倦了使用任何高级数据结构解决问题(需要DP)时,结果总是失败(例如:——现在我知道如何使用DP解决这个简单的问题,但却继续研究段树并获得了O(nlgn)然而DP给了我O(n)。所以最后的建议是:如果一个人没有学习DP,放下所有其他的东西,开始学习。

想想一个需要后缀数组的问题:后缀数组正是你需要的…而且很容易学习解决大多数涉及后缀数组的问题的基本要素。
另一方面,DP是一种算法技术。掌握它,您将能够解决大量问题。不仅仅是字符串。
对于面试,尽管我每天都会接受DP……对于面试官来说,DP问题让他们变得棘手,没有DP几乎不可能解决(在给定的限制条件下)但解决方案将意味着你给他们一个基本的递归,以及DP如何帮助你解决它。如果这是一个后缀数组唯一的问题,这将意味着他们在单个数据结构(简单易学)上评估你,而不是一个需要掌握的更一般的技术。


PS:我一直推迟学习DP,直到最近,当我厌倦了使用任何高级数据结构解决问题(需要DP)时,结果总是失败(例如:——现在我知道如何使用DP解决这个简单的问题,但却继续研究段树并获得了O(nlgn)然而DP给了我O(n)。所以最后的建议是:如果一个人没有学习DP,放下所有其他的东西,开始学习。

一般来说,你不能说一个算法比另一个好。有时,“易于编码”和“在输入限制下工作”会使一个不太通用的算法比“难以编码”、“高隐藏常数”、“在大输入下工作得最好”。你应该选择与你工作领域相关的算法,而不是研究所有算法。@NHAHDH:这里是算法比较?还是算法设计技术/范例比较?克雷蒂罗斯,你不应该告诉我们吗?这毕竟是你的问题,而不是NHTDH的问题。你不能说一种算法比另一种更好有时,“易于编码”和“在输入限制下工作”使得一个不太通用的算法比“难以编码”、“高隐藏常数”、“在大输入下工作最佳”要好。你应该选择与你工作领域相关的算法,而不是研究所有的算法。@NHAHDH:这里是算法比较?还是算法设计技术/范例比较?Cratylus,你不应该告诉我们吗?这毕竟是你的问题,而不是NHTDH的问题。所以你的观点是,总体而言,DP更有用,因为我t涵盖的问题范围更广。特别是与字符串相关的问题,您是否会更改答案?是的,但对于与字符串相关的问题,后缀树是一个很好的选择和替代。如果
对于与字符串相关的问题,后缀树是一个很好的选择和替代
,那么您为什么说
不需要后缀树。这太难了超出范围
如果它是一个重要的数据结构1,在面试中几乎不可能要求你编写后缀树代码。2,后缀树可以用来解决字符串相关的问题,但这不是唯一的选择。你可以使用后缀数组、DP等来实现同样的目标。但是,DP是不可替代的。通常,在采访中,你希望为DP编写代码,但你只需要提到“这个问题也可以通过后缀树解决”,并给出一些简单的解释。这就足够了,不需要编码。所以你的观点是,一般来说DP更有用,因为它涵盖了更广泛的问题。特别是与字符串相关的问题