Tag: 回文

如何find最长的回文序列?

这是来自algorithm书(Vazirani)的问题(6.7 ch6 ),与寻找最长回文的经典问题略有不同。 我怎么解决这个问题 ? 如果从左到右或从右到左读取相同的子序列是回文的。 例如,序列 A,C,G,T,G,T,C,A,A,A,A,T,C,G 有许多回文子序列,包括A,C,G,C,A和A,A,A,A (另一方面,子序列A,C,T不是回文)。 devise一个采用序列x[1 …n]并返回最长回文子序列(的长度)的algorithm。 运行时间应该是O(n^2)

在使用后缀树的string中最长的回文

我试图find一个string中最长的回文。 powershell解决scheme需要O(n ^ 3)时间。 我读了使用后缀树有一个线性时间algorithm。 我熟悉后缀树,并且很舒适地构build它们。 你如何使用内置的后缀树find最长的回文。

Manacheralgorithm(在线性时间内find最长回文子串的algorithm)

花费大约6-8个小时来消化Manacher的algorithm,我准备投入毛巾。 但在此之前,这是黑暗中的最后一击:任何人都可以解释一下吗? 我不在乎代码。 我想要有人解释algorithm 。 这似乎是其他人似乎喜欢解释algorithm的地方: http : //www.leetcode.com/2011/11/longest-palindromic-substring-part-ii.html 我明白你为什么要把string,比如'abba'转换成#a#b#b#a#之后,比我迷路了。 例如,前面提到的网站的作者说,algorithm的关键部分是: if P[ i' ] ≤ R – i, then P[ i ] ← P[ i' ] else P[ i ] ≥ P[ i' ]. (Which we have to expand past the right edge (R) to find P[ i ]) 这似乎是错误的,因为他/她说当P [i'] = 7且P [i]不小于或等于R-i时,P […]

如何检查一个string是使用正则expression式的回文?

这是一个我无法回答的面试问题: 如何检查一个string是使用正则expression式的回文? ps已经有一个问题“ 如何检查给定的string是否是回文? ”,它给了很多不同的语言的答案,但没有使用正则expression式的答案。

如何使用Python逻辑来检查回文

我试图用Python来检查回文。 我有的代码是非常强大的。 在我看来,从C到Python的最大的错误就是尝试使用Python来实现C逻辑,这使得事情运行缓慢,而且它并没有充分利用这种语言。 我在这个网站上看到。 search“C风格”,Python没有C风格的循环。 可能已经过时了,但是我认为Python意味着Python有自己的方法。 我试过四处寻找,我找不到最新的(Python 3)的build议。 我怎样才能解决在Python中的回文挑战,而不使用for循环? 我在课堂上用C语言完成了这个工作,但是我想用Python来完成。 问题是从欧拉工程 ,伟大的网站顺便说一句,。 def isPalindrome(n): lst = [int(n) for n in str(n)] l=len(lst) if l==0 || l==1: return True elif len(lst)%2==0: for k in range (l) ##### else: while (k<=((l-1)/2)): if (list[]): ##### for i in range (999, 100, -1): for j in range (999,100, -1): […]

编写一个返回给定string中最长回文的函数

例如string“abaccddccefe”中的“ccddcc” 我想到了一个解决scheme,但它运行在O(n ^ 2)时间 Algo 1: 步骤:它是一个蛮力方法 有2个循环 对于i = 1到i小于array.length -1 对于j = i + 1到j小于array.length 这样你可以得到数组中每个可能组合的子串 有一个回文函数,检查一个string是回文 所以对于每个子string(i,j)调用这个函数,如果它是一个回文存储在一个stringvariables 如果发现下一个回文子string,并且大于当前string,则将其replace为当前string。 最后你的stringvariables将有答案 问题:1.这个algorithm运行在O(n ^ 2)时间。 Algo 2: 反转string并将其存储在不同的数组中 现在find两个数组之间最大的匹配子串 但是这也运行在O(n ^ 2)时间 你们能想到一个在更好的时间运行的algorithm吗? 如果可能的话O(n)时间

检查回文string

回文是一个单词,短语,数字或其他顺序的单位,可以在任何方向读取相同的方式。 要检查一个单词是否是回文,我得到单词的字符数组并比较字符。 我testing了它,它似乎工作。 不过,我想知道这是对的还是有什么需要改进的。 这是我的代码: public class Aufg1 { public static void main(String[] args) { String wort = "reliefpfpfeiller"; char[] warray = wort.toCharArray(); System.out.println(istPalindrom(warray)); } public static boolean istPalindrom(char[] wort){ boolean palindrom = false; if(wort.length%2 == 0){ for(int i = 0; i < wort.length/2-1; i++){ if(wort[i] != wort[wort.length-i-1]){ return false; }else{ palindrom = true; } […]