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