首页 > 编程语言 >c++数组挑战-字符环

c++数组挑战-字符环

时间:2024-08-29 12:57:26浏览次数:8  
标签:字符 string int c++ 数组 字符串 ABCEFAGADEGKABUVKLM MADJKLUVKL

题目描述:

有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串 ABCEFAGADEGKABUVKLM 的首尾连在一起,构成一个环;字符串 MADJKLUVKL 的首尾连在一起,构成一个另一个环; UVKLMA 是这两个环的一个连续公共字符串。

时间限制:1 s内存限制:128 MB

输入

一行,包含两个字符串,分别对应一个字符环。这两个字符串之间用单个空格分开。字符串长度不超过 500500,且不包含空格等空白符。

输出

输出一个整数,表示这两个字符环上最长公共字符串的长度。

样例
输入 1复制
ABCEFAGADEGKABUVKLM MADJKLUVKL
输出 1复制
6
#include <bits/stdc++.h>
using namespace std;
int main()
{   
    string a,b;
    cin>>a>>b;
    string aa=a+a;
    string bb=b+b;
    int nmax=0;
    for(int i=0;i<aa.size();i++){
        for(int j=0;j<bb.size();j++){
            int k=i,l=j;
            int cnt=0;
            while(k<aa.size()&&l<bb.size()&&aa[k]==bb[l]){
                k++;l++;cnt++;
            }
            nmax=max(nmax,cnt);
        }
    }
    int la=a.size();int lb=b.size();
    cout<<min(nmax,min(la,lb));
    return 0;
}
输入
ABCEFAGADEGKABUVKLM MADJKLUVKL
输出
6
输入
A M
输出
1

nice

标签:字符,string,int,c++,数组,字符串,ABCEFAGADEGKABUVKLM,MADJKLUVKL
From: https://blog.csdn.net/Z66571/article/details/141671724

相关文章

  • 代码随想录算法day2-数组2
    题目1209.长度最小的子数组给定一个含有n个正整数的数组和一个正整数target。找出该数组中满足其总和大于等于target的长度最小的子数组[numsl,numsl+1,...,numsr-1,numsr],并返回其长度。如果不存在符合条件的子数组,返回0。示例1:输入:target=7,nums=[2,......
  • C语言涉及问题(文件IO与数组和指针)
    一、文件IO相关1、标准出错、输入、输出三者的缓冲机制是什么?标准出错(stderr):属于不缓冲机制,数据直接写入设备标准输入(stdin)和标准输出(stdout):属于行缓冲和全缓冲,行缓冲时需要用'\n'分隔,全缓冲是缓冲区满才会写入或者输出。冲刷缓冲函数:fflush();无论是如果想将全缓冲......
  • 用c/c++做一个扫雷游戏
    “扫雷”想必80 90年代的都不陌生吧,是当代青年人机必备的益智游戏,今天,我们就用c/c++还原它,记得点赞支持一下,老乔谢谢你们~使用演示设备:1.开发环境 visualstudio2022 或 devc++2.演示系统Windows103.演示课目扫雷游戏效果展示(演示图):上代码:#include<stdio......
  • AirSlam C++ 代码学习
    问题1:reserve函数是什么?reserve是C++标准库中std::vector类的一个成员函数,用于预留一定数量的内存空间,以避免在向量增长时频繁进行内存分配和复制操作,从而提高性能。具体来说,reserve(n)会为向量预留至少n个元素的内存空间,但不会改变向量的大小(即不会添加任何元素)。这......
  • 代码随想录算法训练营第四十三天 | 300.最长递增子序列 , 674. 最长连续递增序列 , 718.
    目录300.最长递增子序列 思路1.dp[i]的定义2.状态转移方程3.dp[i]的初始化4.确定遍历顺序 5.举例推导dp数组方法一:动态规划方法二:贪心心得收获 674.最长连续递增序列思路动态规划1.确定dp数组(dptable)以及下标的含义2.确定递推公式3.dp数组如何初始化4.......
  • 《C++中的友元:打破封装的神秘力量》
    在C++的编程世界里,友元函数和友元类就像是一把特殊的钥匙,可以打开封装的大门,让特定的函数或类能够访问其他类的私有成员。这一特性在某些情况下具有重要的作用,让我们一起来深入探讨C++中的友元函数和友元类有什么作用。一、热点关注:友元为何引发热议?在面向对象编程中,封......
  • 最简最速!C++版OpenCV安装配置教程Win/Mac!!!
    Clion+OpenCV(C++版)开发环境配置教程Win/Mac        平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定视觉方面使用C++的OpenCV来节约上位机资源提高运行的速度,在查阅了网上的各种资料后发现这些资料参差不齐......
  • Clion+OpenCV(C++版)开发环境配置教程WinMac
    Clion+OpenCV(C++版)开发环境配置教程Win/Mac        平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定视觉方面使用C++的OpenCV来节约上位机资源提高运行的速度,在查阅了网上的各种资料后发现这些资料参差不齐有些博......
  • 二维数组传参要点
    最近在写代码的时候又一次遇到了需要二维数组传参的操作,捣鼓了半天,总是会指针有问题,上网上查阅了相关资料后,虽然弄懂了,但是后面还是把二维改成一维了。但是呢?还是把相关的学习记录整理下来,以防后续还是需要用上。 这里主要以如何声明函数,如何调用函数,在函数中如何使用来讲解。形......
  • Java中的数组用法(复制、替换、查找与排序)
    在Java编程中,数组是一种基础且强大的数据结构,用于存储一组相同类型的元素。本文将深入探讨数组在Java中的用法,并展示如何进行数组的复制与替换、查找以及排序。(这些了解与学习只需要一个IDEA就可以进行练习了 )##数组的声明与初始化在Java中,数组的声明和初始化非常直观。以......