ZPG TEST 115 字串 歸類思想

2022-09-06 12:03:27 字數 910 閱讀 6597

pdf效果太差,轉成word效果依舊差,只好轉成jpg傳了。

這一題用到了「歸類」的思想,令s(i, a)表示前i個字型,字元a出現的次數。那麼ans一定等於乙個

(  s(i, a) - s(j, a)  ) - (  s(i, b) - s(j, b)  ),

歸一下類,得到ans等於乙個

(  s(i, a) - s(i, b)  ) - (  s(j, a) - s(j, b)  ).

所以我們只需要讀入乙個字元a,然後列舉那個字元b,在用上式計算答案,要儲存前面的s(j, a) - s(j, b)的最小值。

然而還是有一種特殊情況,舉個例子,aaabbbb,如果直接向上面那樣做得到的答案是4,對應的是bbbb那一串,即4個b減去0個a,但是出現0次並不算出現,所以我們需要儲存乙個cj[26][26],其中cj[a][b]表示s(j, a) - s(j, b)取到最小值時,b字元出現的個數。那麼如果s(i, b) == cj(a, b)的話,就不能更新答案,因為這一段是沒有字元b的。

#include #include #include const int maxn = 1000005;

int n, a[maxn], mn[30][30], ans, s[30], cj[30][30];

char ch;

int main(void)

for (int i = 1; i <= n; ++i)

if (s[a[i]] > s[j])

}else if (s[a[i]] < s[j])

if (s[a[i]] - s[j] < mn[a[i]][j])

if (s[j] - s[a[i]] < mn[j][a[i]])

} }printf("%d\n", ans);

return 0;

}

11 5字串函式

c庫提供多個處理字串的函式,這些函式的原型放在string.h標頭檔案中 strlen函式用於統計字串的長度 下面的函式可以縮短字串的長度,用到了strlen void fit char string,unsigned int size 該函式要改變字串,所以在函式頭宣告時不能使用const限定 以...

leetcode115,字串T中序列S的個數

原文 問題描述 給定乙個字串 s 和乙個字串 t,計算在 s 的子串行中 t 出現的個數。乙個字串的乙個子串行是指,通過刪除一些 也可以不刪除 字元且不干擾剩餘字元相對位置所組成的新字串。例如,ace 是 abcde 的乙個子串行,而 aec 不是 示例1 輸入 s rabbbit t rabbit...

字串1 字串的旋轉

題目描述 給定乙個字串,要求將字串前面的若干個字元移到字串的尾部。例如 將字串 abcdef 的前三個字元 a b c 移到字串的尾部,那麼原字串將變成 defabc 首先想到的是將需要移動的字元乙個乙個移到字串的尾部。實現如下 public class transfet s n 1 t publi...