1528: 匹配字串
題目描述
2015 年廣東工業大學acm校賽要來~\(≧▽≦)/~辣辣辣,作為校賽的出題人之一,gg想出了一道水題來考考大家。相信小夥伴們都學過字串匹配,於是字元 串匹配的水題就誕生辣!gg給出了一段長度為n的大寫字母序列,現在他要你修改這一段字母序列,使得這段字母序列上最前面的k個字母組成的序列與最後面的 k個字母組成的序列一一匹配。
例如對於序列「atuuuuac」和k = 2,可以通過將第二個字母修改為「c」,使得最前面的兩個字母與最後面的兩個字母都為「ac」,當然 還存在其他的修改方法,現在gg要求你求出要使字串匹配至少需要修改多少個字母。
輸入有t組資料輸入。(t <= 100)
每組資料只有兩行,第一行為乙個字串,第二行為乙個正整數k,字串的長度不會超過1000,且至少為1。(1 <= k <= n)。
輸出對於每組資料輸出至少需要修改的字母數量
樣例輸入
2atuuuuac
2atacgtct
6樣例輸出13
題目**:
#include
#include
#include
#include
using namespace std;
int main()
else//這個比較麻煩,因為如果m>len/2時,許多字母是繫結在一起的
if(j>len-1)//如果超過字串的長度,代表所有與第i個字母相關聯的字母都找完了
break;
}sort(b,b+26);//排序,求與第i個字母繫結的所有字母中那個字母最多
mmin=mmin+(sum1-b[25]); //就等於與第i個字母繫結的字母個數減去某個字母個數最多,就是最少的修改次數,
}printf("%d\n",mmin);}}
return 0;
}0 1 2 3 4 5 6 7
a t a c g t c t
a t a c g t c t
0 1 2 3 4 5 6 7
按照迴圈
當i=0時,
要修改的為0 2 4 6 a a g c這條路的長度為4,字母a最多,所以不修改字母a,將其他兩個字母修改為字母a,需要路的長度-某個字母個數的最大值。
當i=1時
要修改的為1 3 5 7他們是相互繫結的。t c t t,字母t最多,所以將其他與字母t不一樣的字母都變為t,修改的次數最少,這條路的長度為4
字母t最多是3個,那麼要修改有4-3=1;
當i=2時
2 4 6 都已經考慮過了
當i=3時
3 5 7繫結也都考慮過了
........
LibreOJ Round 7 匹配字串
時間限制 2 sec 記憶體限制 512 mb 題目描述 對於乙個 01 串 即由字元 0 和 1 組成的字串 sss,我們稱 sss 合法,當且僅當串 sss 的 任意乙個長度為 mmm 的子串 s s s 不為全 1 串。請求出所有長度為 nnn 的 01 串中,有多少合法的串,答案對 6553...
24 匹配非空格字元
說明 你前面學習了使用 s搜尋空格 小寫的s 你也可以搜尋除空白或空格之外的所有內容。使用 s搜尋非空格,這是乙個大寫的s。此模式將不匹配空格 回車符 製表符 換頁和新行字元。你可以想象它類似於字元類 r t f n v var whitespace whitespace.whitespace ev...
PHP正規表示式(1) 匹配字串不能包含中文
在php裡面利用正規表示式編寫小偷程式的時候,我發現匹配字串裡不能包含中文,否則無法成功進行匹配。如下 preg it資訊 i preg it i 即可匹配出頁面中所有符合條件的超級鏈結。最開始碰到無法匹配出超連結的時候,我懷疑是正規表示式組作為字串參與匹配導致的,後來測試 也都能成功匹配。ps 正...