请问我把第5、6行的初始化用第1、2行代替,为什么就出错了呢?(“1”这种情况出错了)
int dp[2][100]={0}; //dp[0][i]表示以第i个字符串结尾的连续0的个数
int max[2]={0}; //max[0]表示由0组成的最长子字符串长度
bool checkZeroOnes(char* s) {
int n=strlen(s),i;
//memset(dp,0,sizeof(dp));
//max[0]=max[1]=0;
dp[s[0]-'0'][0]=1;
max[s[0]-'0']=1;
for(i=1;i<n;i++)
{
if(s[i]==s[i-1])
dp[s[i]-'0'][i]=dp[s[i-1]-'0'][i-1]+1;
else
dp[s[i]-'0'][i]=1;
}
for(i=0;i<n;i++)
{
if(dp[0][i]>max[0])
max[0]=dp[0][i];
if(dp[1][i]>max[1])
max[1]=dp[1][i];
}
if(max[1]>max[0]) return true;
else return false;
}