題目:
給出乙個字串s,找到乙個最長的連續回文串。
注意可有2中形態:aba(奇數型) 或 abba(偶數型)
解法一:逐個遍曆法:
<?php
$str = "ababa";
$re = longestpalindrome($str);
function preprocess($str)
$ret .= "#";
return $ret;
}function longestpalindrome($str)
if($p[$i] > $maxlen)
echo "i:$i p[$i]:$p[$i] center:$center maxlen:$maxlen
"; }
echo substr($str,($center)/2-$maxlen/2,$maxlen);
}
解法二:
manacher』s algorithm
參考:參考:
<?php
$str = "aaaa";
$re = longestpalindrome($str);
function preprocess($str)
$ret .= "#";
return $ret;
}function longestpalindrome($str)
if($right-$i < $p[$i])
echo "i:$i right:$right p[$i]:$p[$i] center:$center
";
if($p[$i] > $maxlen)
} echo substr($str,($centerindex-$maxlen)/2,$maxlen);
}
最長回文子串 最長回文子串行
1.最長回文子串行 可以不連續 include include include include using namespace std 遞迴方法,求解最長回文子串行 intlps char str,int i,int j intmain include include include using n...
最長回文子串行 最長公共子串行 最長連續回文子串
public class solution int result new int len 1 len 1 stringbuffer sb new stringbuffer s sb sb.reverse string rev sb.tostring result 0 0 0 下面兩個for迴圈相當於...
最長連續子串
牛牛有兩個字串 可能包含空格 牛牛想找出其中最長的公共連續子串,希望你能幫助他,並輸出其長度。輸入描述 輸入為兩行字串 可能包含空格 長度均小於等於50.輸出描述 輸出為乙個整數,表示最長公共連續子串的長度。示例1 abcde abgde 2 這個題是一道動態規劃的變形體 就是當a i 1 b j ...