私はここで問題を自分で解決したかった: 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);
}
temp = i+j-1 の計算がどのように行われるか知りたいですか? 紙の上または例によって、彼はどのようにしてその方程式を得ることができたのでしょうか。いろいろ試しましたが取れませんでした。