題目描述
給出乙個字串 s 和一些長度為 3 的非法串(由英文小寫字母組成)。你需要在字串 s 中移除一些字元使得變更後的字串不包含任何非法串。
求最小的需要移除的字元個數。
輸入輸入含多組資料,一直處理到檔案結束。對於每組資料:
第一行是字串 s,長度不大於 50000。
第二行是非法串個數,個數不大於 676。
第三行到最後一行每行 3 個字母表示非法串。
輸出對每組資料,輸出最小需要移除的字元個數。
複製樣例資料
abcdd樣例輸出2abc
abd
1
2017
華東理工上海高校邀請賽
#include "bits/stdc++.h
"using
namespace
std;
const
int maxn = 5e4 + 100
;bool illegal[27 * 26 * 26 + 30
];int dp[maxn][26 * 26 + 30];//
de了乙個小時的bug。。 這裡第二維一開始開了27*26,下面為to是26*26+26,訪問錯誤位址
char
str[maxn];
intmain()
}memset(dp[
0], 0x80, sizeof dp[0]);//
負無窮 dp[0][0] = 0
;
const
int to = 26 * 26 + 26
;
//dp[i][j]表示到i時以 不合法子串字首j 為字尾的合法串的最大長度
for (int i = 0; i <= n; i++)
else
if (!illegal[j * 26 +x]) }}
int ans = 0
;
for (int i = 0; i <= to; i++)
printf(
"%d\n
", n -ans);
}return0;
}
posted @
2019-01-31 22:15
albert_liu 閱讀(
...)
編輯收藏
php移除最少字元變成回文串
s for i 0 i 15 i s string strtoupper s echo string 這是隨機生成乙個字串 一段字串 移除最少的字元 使之成為乙個回文串 比如 abba ababa a 都是回文串 absdfda 移除最少字元後形成回文 變成 adfda 重點講解下 回串文的 第乙個...
C 字串處理 擷取 替換 移除
問題1 我想刪除字串中指定的字元。解答 技巧性的方法,用replace 例如 string str how are you 現在我們刪除它中間的空格,則 str str.replace 懂了吧,把要刪除的字元替換成 就 ok了!問題2 我想刪除字串開頭和結尾的空格。解答 用trim 系列。trim ...
探索陣列和字串 移除元素
給你乙個陣列 nums 和乙個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除後陣列的新長度。不要使用額外的陣列空間,你必須僅使用 o 1 額外空間並 原地 修改輸入陣列。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 va...