1528 匹配字串 平頂山學院

2021-07-22 11:38:26 字數 1392 閱讀 5253

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