pve伺服器內網同步時鐘
阿新 • • 發佈:2022-03-01
動態方程:
d[i][j] = (a[i]=a[j])&&d[i+1][j-1]
public String longestPalindrome(String str) { if (str==null||str.length()==1) { return str; } int len = str.length(); boolean[][] dp = new boolean[len][len]; //預設值是false String res = str.substring(0,1); //[0,1) for (int j=0; j<len; j++){for (int i=0; i<=j; i++){//從i到j,必然i<=j。i在內,也必然先有j。被依賴方在外層,依賴方在內層 char head = str.charAt(i); char tail = str.charAt(j); //j-i=0,單個元素,一定迴文。 //j-i=1,兩個元素相等,一定迴文。 //j-i=2,三個元素,兩邊元素相等,一定迴文。 //兩邊相等,中間迴文,一定迴文。 dp[i][j] = (head==tail) && (j-i <= 2 || dp[i+1][j-1]);if (dp[i][j]){ if (j-i+1 > res.length()){ res = str.substring(i, j + 1); } } } } return res; }