我想在這裏解決這個問題我自己:To find the longest substring with equal sum in left and right in C++瞭解的算法解決方案
的代碼是在這裏
int getEqualSumSubstring(string s) {
int i=0,j=i,foundLength=0;
for(i=0;i<s.length();i++)
{
for(j=i;j<s.length();j++)
{
int temp = j-i+1;
if(temp%2==0)
{
int leftSum=0,rightSum=0;
string tempString=s.substr(i,temp);
// printf("%d ",tempString.length());
for(int k=0;k<temp/2;k++)
{
leftSum=leftSum+tempString[k]-48;
rightSum=rightSum+tempString[k+(temp/2)]-48;
}
if((leftSum==rightSum)&&(leftSum!=0))
if(tempString.length()>foundLength)
foundLength=tempString.length();
}
}
}
return(foundLength);
}
我想知道如何溫度的計算= I + J-1完成?如何在紙上或通過例子他可以得到這個等式。我嘗試了很多,但我無法得到它。
*「我想知道如何計算temp = i + j-1?」*推測你的意思是你想知道程序員如何選擇這種計算?因爲*「如何完成」*是通過添加'i'和'j',減去1並將結果賦給'temp'。 – dmckee
如果我想要第二個循環從i + 1而不是i去。如何改變計算? – Andre