EOJ Problem #1805

该博客主要讨论EOJ中的问题#1805,涉及如何找到两个字符串的最长连续公共子序列(LCS)。博主分享了他们的解决方案,包括使用字符串长度来迭代寻找潜在的LCS,并提供了测试用例。然而,他们在Test 2中遇到了错误,正在寻求帮助以找出问题所在。
摘要由CSDN通过智能技术生成

在EOJ中的Problem #1805中,寻找两个string的LCS。
题目要求如下:
给你 2 个字符串(可能包括数字以及标点),长度不超过 50124,请你求出最长的连续的公共子序列。
输入格式
输入有 2 个字符串 A,B,各占一行。
输出格式
输出字符串 A和 B的最长连续公共子序列的长度 L。

Demo自测没有问题,但在Test 2会报错,不知道问题在哪儿。。。请教。Demo如下

#include <bits/stdc++.h>
using namespace std;

int main() {
    int i, j, len1, len2;
    string str, str1, str2;

    cin >> str1 >> str2;
    len1 = str1.length();
    len2 = str2.length();
    if(str1 > str2) {
        swap(str1, str2);
        swap(len1, len2);
    }
    for(i = len2; i >= 0; i--) {
        for(j = 0; j < len2 - 1; j++) {
            if(j + i > len2) {
                break;
            }
            str = str2.substr(j, j + i);
            if(str1.find(str) != -1) {
                cout << i << endl;
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值