Questions tagged «palindrome»

22
编写一个函数,该函数返回给定字符串中最长的回文
例如字符串“ abaccddccefe”中的“ ccddcc” 我想到了一个解决方案,但它的运行时间为O(n ^ 2) 算法1: 步骤:这是一种蛮力方法 对于i = 1至i小于array.length的2个for循环, 对于j = i + 1至j小于 array.length的-1 这样,您可以从数组中获取所有可能组合的子字符串 具有回文功能,可检查字符串是否为回文 因此,对于每个子串(i,j)都调用此函数(如果它是回文)将其存储在字符串变量中 如果找到下一个回文子字符串,并且该子字符串大于当前子字符串,则将其替换为当前子字符串。 最后,您的字符串变量将得到答案 问题:1.该算法运行时间为O(n ^ 2)。 算法2: 反转字符串并将其存储在不同的数组中 现在找到两个数组之间最大的匹配子字符串 但这也需要O(n ^ 2)时间 你们能想到一种运行时间更好的算法吗?如果可能的话O(n)时间

30
如何使用正则表达式检查字符串是回文?
那是我无法回答的面试问题: 如何使用正则表达式检查字符串是回文? ps已有一个问题“ 如何检查给定的字符串是否为回文? ”,它用不同的语言给出了很多答案,但是没有答案使用正则表达式。
93 regex  palindrome 

30
检查回文字符串
甲回文是单词,短语,数字或的单元的其它序列可以读取在任一方向的方式相同。 为了检查一个单词是否是回文,我得到了单词的字符数组并比较了字符。我测试了它,它似乎起作用了。但是我想知道这是正确的还是有待改进的地方。 这是我的代码: 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 …

10
Manacher算法(在线性时间内找到最长回文子串的算法)
在花了大约6到8个小时尝试消化Manacher的算法后,我准备投入工作。但是在我这样做之前,这是黑暗中的最后一枪:有人能解释吗?我不在乎代码。我希望有人来解释该算法。 这似乎是其他人似乎喜欢解释该算法的地方:http : //www.leetcode.com/2011/11/longest-palindromic-substring-part-ii.html 我知道您为什么要将字符串转换为“ abba”到#a#b#b#a#,然后我迷路了。例如,前面提到的网站的作者说,算法的关键部分是: 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 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.