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...