站外题求助
  • 板块题目总版
  • 楼主BL_Turtle
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/19 16:55
  • 上次更新2024/10/19 19:09:43
查看原帖
站外题求助
1427890
BL_Turtle楼主2024/10/19 16:55

做了两次都是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;
}
2024/10/19 16:55
加载中...