做了两次都是40分,不过是不同错法。
首先是超内存:
#include <iostream>
//#include <cstdio>
#include <string>
using namespace std;
int main() {
int N,M;
// freopen("string.in","r",stdin);
// freopen("string.out","w",stdout);
cin >> N >> M;
string S,T;
cin >> S >> T;
string A = S;
for (int i = 0;i < N - 1;++i) {A += S;}
string B = T;
for (int i = 0;i < M - 1;++i) {B += T;}
int ans = 0;
for (size_t i = 0;i < A.length();++i) {
if (A[i] == B[i]) {++ans;}
}
cout << ans << endl;
return 0;
}
然后是超时:
#include <iostream>
//#include <stdio.h>
#include <string>
using namespace std;
int main() {
int N,M;string S,T;
//freopen("string.in","r",stdin);
//freopen("string.out","w",stdout);
cin >> N >> M;
cin >> S >> T;
int lenA = S.length() * N;
int lenB = T.length() * M;
if (lenA != lenB) {return 1;}
int matchingCount = 0;
for (int i = 0;i < lenA;++i) {
char aChar = S[i % S.length()];
char bChar = T[i % T.length()];
if (aChar == bChar) {
matchingCount++;
}
}
cout << matchingCount << endl;
return 0;
}