T1129 行程長度編碼

2021-10-11 16:13:42 字數 946 閱讀 8478

描述

在資料壓縮中,乙個常用的途徑是行程長度壓縮。對於乙個待壓縮的字串而言,我們可以依次記錄每個字元及重複的次數。這種壓縮,對於相鄰資料重複較多的情況比較有效。 例如,如果待壓縮串為"aaabbbbcbb",則壓縮的結果是(a,3)(b,4)(c,1)(b,2)。當然,如果相鄰字元重複情況較少,則壓縮效率就較低。

現要求根據輸入的字串,得到大小寫不敏感壓縮後的結果(即所有小寫字母均視為相應的大寫字母)。

輸入

乙個字串,長度大於0,且不超過1000,全部由大寫或小寫字母組成。

輸出

輸出為一行,表示壓縮結果,形式為:(a,3)(b,4)(c,1)(b,2)  即每對括號內部分別為字元(都為大寫)及重複出現的次數,不含任何空格。

樣例輸入

aaabbbbcccaaaaa
樣例輸出

(a,3)(b,4)(c,3)(a,5)
#include #include #include using namespace std;

int main()

else continue;

}if(a[i] >= 'a' && a[i] <= 'z')

cout << "(" << char(a[i]) << ',' << j - i << ")" ;

else if(a[i] >= 'a' && a[i] <= 'z')

cout << "(" << char(a[i]-32) << ',' << j - i << ")" ;

i = j;

}

return 0;

}

NOIP模擬 11 6 T2 序列操作

題目描述 一開始有 n 個非負整數 h i 1 i n 接下來會進行 m 次操作,第 i 次操作給出乙個數 c i 要求你選出 c i 個大於0的數並將它們減去1。問最多可以進行多少輪操作後無法操作 即沒有 c i 個大於0的數 輸入格式 第一行兩個數表示 n 和 m。第二行 n 個數描述 h i ...

校內測 10 28 T2 序列區間 暴力

傳送門 看到每個數最大只能是1e8 1e81e 8,最多有2e5 2e52e 5個數,而k kk最大是1e5 1e51e 5,所以我們的乘積最大也只能到2e18 2e18 2e18 所以除了1 11,我們最多隻會算log loglo g個數,所以考慮把相鄰的1 11縮成乙個數,其他的數暴力算 inc...

2023年10月27日提高組 T3 序列

給定n nn個數,求連續長度不小於k kk的最大按位或和按位與值 按位或的最大值其實就是所有數或起來,因為aor b a a or b a aorb a 按位與的最大值其實就是k kk個數與起來,因為aan db a a and b a aand b a 所以我們只需要用位運算維護乙個動態視窗即可 ...