18北郵計算機院 D 最長平衡子串 雜湊 貪心

2021-10-02 17:09:56 字數 604 閱讀 3270

題目描述

給定只含01的字串,找出最長平衡子串的長度(平衡串:包含0和1的個數相同),串長最大10^6

乙個字串,只包含01,長度不超過1000000

一行乙個整數,最長的0與1的個數相等的子串的長度。

3

1011

1111

1010

2

04

思路:將0看做-1,求前i項和,當前i項和為0時,以此元素為結尾的最長長度為當前下標值+1;若該和值是第一次出現用hash陣列記錄該和值第一次出現時的下標i,否則當前下標值與hash陣列中記錄的當前和值第一次的下標值相減就是以此元素為結尾的最長長度。其中的最長的長度便是所要求的解。

實現**:

#includeusing namespace std;

char s[1000003];

int h[2000003];

int main()

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

}}

19北郵計算機院機試

32位二進位制數 x 對其進行x 1,x 3操作,並輸出。注意不能忽略前導0。輸入 第一行,乙個整數 t 代表測試資料組數。接著 t 行,輸入32為二進位制數輸出對每組測試資料。輸出兩行,第一行為x 1,第二行為x 3.測試樣例輸入2 00000000000000000000000000000000...

2011北郵計算機院複試上機題

problem.a 反轉單詞 思路 經典的考察對於輸入輸出流的理解的題,可作為模板記住,用字串型的棧儲存輸入的單詞,因為題中說明了沒有連續空格也沒有標點符號,所以可以放心使用cin,跳過空格但不跳過回車,回車需要特殊處理。個人認為也可用getline cin,str,作為迴圈條件 如果包含空格或者是...

2014北郵計算機院複試上機(上)

problem.a 眾數 思路 常規題穩拿分 include include using namespace std define maxn 100001 int cnt maxn int main else if max cnt num if num prob num num cout retur...