最長回文串

2021-10-07 11:08:15 字數 1583 閱讀 3697

public class testmodel  

private static string hasspecialfindlcs(string input)

return sb.substring(0, sb.length() - 1);}/*

* google

* / \

* googl oogle

* / \ / \

* goog oogl oogl ogle

** 通過動態規劃的方式先找到對應的二維陣列 如上圖 可以發現 求google 的最大回文字串 實際是在求 googl最大的回文串加上e,oogle 最大的回文串加上g 可以得到公式

* dp[0][5]=input.charat(0) == reverse.charat(5)?dp[0][4] + 1:math.max(dp[0][4], dp[1][5]);

** @param input 待查詢字串

* @return 查詢結果

*/private static string findlcs(string input)

int len = input.length();

int dp = new int[len + 1][len + 1];

for (int i = 1; i <= len; i++)

}setpaths = new hashset<>();

getalllcs(input, len, dp, len, len, new stringbuilder(), paths);

return string.join("/", paths);

}/**

* 遍歷生成的二維dp陣列,遞迴查詢最長路徑

** @param a 第乙個字串

* @param dp dp陣列

* @param i 二維陣列raw位置

* @param j 二維陣列col位置

* @param path 一次查詢的字串

* @param resultset 最終結果集合

*/private static void getalllcs(string a, int len, int dp, int i, int j, stringbuilder path,

setresultset) else else if (dp[i - 1][j] < dp[i][j - 1]) else }}

resultset.add(pathbuilder.tostring());

}}

public class testmodel2 $");

if (pattern.matcher(in).matches())

return "您的手機號格式正確";

return "您的手機號格式錯誤";

}public static void main(string args)

}```

最長回文串

輸入乙個字串,求出其中的最長回文字串,樣例輸入 confucicss say madam,i m asam。樣例輸出 masam,i m asam。這個題首先要判斷最長那個回文串的位置,並且與大小寫無關,用到函式 toupper 然後輸出後面的字串。include include include i...

最長回文串

時間限制 1000ms 單點時限 1000ms 記憶體限制 64mb 描述 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一連串的字串,於是小hi就向小ho提出了那個經典的問題 小ho,你能不能分別...

最長回文串

給出乙個包含大小寫字母的字串。求出由這些字母構成的最長的回文串的長度是多少。資料是大小寫敏感的,也就是說,aa 並不會被認為是乙個回文串。注意事項 假設字串的長度不會超過1010。您在真實的面試中是否遇到過這個題?yes 樣例給出 s abccccdd 返回7 一種可以構建出來的最長回文串方案是 d...