題目
給定乙個0-1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。
輸入
乙個字串,只包含01,長度不超過1000000。
輸出
一行乙個整數,最長的0與1的個數相等的子串的長度。
樣例輸入
1011
樣例輸出
2
分析
使用字首和,字首和pre[i].val表示01字串前i個字元中,1的數量-0的數量的值。因此問題就是求滿足1的數量-0的數量=0的最大區間,程式使用排序進行優化,具體看程式。
c++程式
#include#include#include#includeusing namespace std;
const int n=1000005;
struct node
sort(pre+1,pre+n+1);//排序
//求中間某個區間s[l...r]滿足要求,且長度更長
for(int i=1;i<=n;i++)//列舉子串的開始位置
cout<} return 0;
}
51Nod 1393 0和1相等串
1393 0和1相等串 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。input 乙個字串,只包含01,長度不超過1000000。output 一行乙個整數,最長的0與1的個數相等的子串的長...
51nod 1393 0和1相等串
給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。input 乙個字串,只包含01,長度不超過1000000。output 一行乙個整數,最長的0與1的個數相等的子串的長度。input示例 1011output示例 2 準備乙個sum,如果碰到0則 1,碰到1則 1.對於每乙個...
51nod 1393 0和1相等串
基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 給定乙個0 1串,請找到乙個盡可能長的子串,其中包含的0與1的個數相等。input 乙個字串,只包含01,長度不超過1000000。output 一行乙個整數,最長的0與1的個數相等的子串的長度。input示例 ou...