題目:給定乙個字串,問是否能通過新增乙個字母將其變為回文串
參考了一些同學的文章,發現判斷是否能新增乙個字元變成回文串是「最少新增幾個字元變成回文串」的一種情況。
在做測試時有三種情況:
(1)aba型,本來就是回文串
(2)abac型,在串的左邊或右邊新增另一側的字元,變成回文串
(3)abceba型,在串的中間新增字元,形成回文串。
然而普通做法,前兩種很好判斷和處理,只有第三種比較麻煩。
那麼解決的方法就是動態規劃,利用源字串和翻轉後的字串,求最長公共子串行。長度-公共子串行的長度=新增字元的個數。
現給出**如下:
public static int lcs(string s, string s1)
for (int i = 1; i < m + 1; i++) else
}} return dp[m][n];
}
只要判斷size-ls<=1,則輸出yes,否則輸出no 判斷乙個整數是否能被11整除
如果乙個整數在整型範圍內,直接用求餘符號就能搞定,但是如果這個整數比較大就要另尋他路了。有一種演算法叫做 奇偶位差法 意思就是在奇數字上的數字和與偶數字上的數字和做差,如果這個差的絕對值能被11整除,那麼這個數字就可以被11整除。include include includeint main if ...
C 判斷乙個字元是否是字母或數字
isalnum 函式用來檢測乙個字元是否是字母或者十進位制數字。如果僅僅檢測乙個字元是否是字母,可以使用 isalpha 函式 如果僅僅檢測乙個字元是否是十進位制數字,可以使用 isdigit 函式。如果乙個字元被 isalpha 或者 isdigit 檢測後返回 真 那麼它被 isalnum 檢測...
php如何判斷乙個字串是否包含另乙個字串
來自1 我覺得最簡單的就是 用這種最好,strpos效率最高 strpos a,b false 如果 a 中存在 b,則為 true 否則為 false。用 false 或者 false 的原因是如果 b 正好位於 a的開始部分,那麼該函式會返回int 0 那麼0是false,但 b確實位於 a中,...