谁知道为什么Memory Limit Exceeded
自己想的 超空间了
#include <iostream>
#include <string>
using namespace std;
int main()
{
char c;
string s,s1,s2;
while (cin>>c,c!=',') s+=c;
while (cin>>c,c!=',') s1+=c;
while (cin>>c,c!=',') s2+=c;
int m,n;
int len1=s1.size(),len2=s2.size(),len=s.size();
for(int i=0;i<len;i++)
{
for (int j=0;j<len1;j++)
if (s[i+j]=s1[j]) m=i;
}
for(int i=len-1,j=len2-1;i>0;i--)
{
for (int k=0;k<len2;k++)
if (s[i-k]=s1[j-k]) n=i;
}
if (m+len1-1<n+1-len2) cout<<n-m-len1-len2+1;
else cout<<"-1";
}
另一种判断字符串a与字符串b的一部分相同的方法 还是超空间了
#include <iostream>
#include <string>
using namespace std;
int main()
{
char c;
string s,s1,s2;
while (cin>>c,c!=',') s+=c;
while (cin>>c,c!=',') s1+=c;
while (cin>>c,c!=',') s2+=c;
int m,n;
int len1=s1.size(),len2=s2.size(),len=s.size();
for(int i=0;i<len;i++)
{
string temp;
for (int j=i;j<i+len1;j++) temp+=s[j];
if (temp==s1) m=i;
}
for(int i=len-1,j=len2-1;i>0;i--)
{
string temp;
for (int j=i;j>i-len2;j--) temp=s[j]+temp;
if (temp==s2) n=i;
}
if (m+len1-1<n+1-len2) cout<<n-m-len1-len2+1;
else cout<<"-1";
}