判斷是否能通過新增乙個字母將字串變為回文串

2021-09-30 13:23:16 字數 515 閱讀 7183

題目:給定乙個字串,問是否能通過新增乙個字母將其變為回文串

參考了一些同學的文章,發現判斷是否能新增乙個字元變成回文串是「最少新增幾個字元變成回文串」的一種情況。

在做測試時有三種情況:

(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中,...