CF1506C Double-ended Strings(差不多就是找最长串问题)

简介: CF1506C Double-ended Strings(差不多就是找最长串问题)

题目描述



You are given the strings aa and bb , consisting of lowercase Latin letters. You can do any number of the following operations in any order:


  • if |a| > 0∣a∣>0 (the length of the string aa is greater than zero), delete the first character of the string aa , that is, replace aa with a_2 a_3 \ldots a_na2a3…an ;
  • if |a| > 0∣a∣>0 , delete the last character of the string aa , that is, replace aa with a_1 a_2 \ldots a_{n-1}a1a2…an−1 ;
  • if |b| > 0∣b∣>0 (the length of the string bb is greater than zero), delete the first character of the string bb , that is, replace bb with b_2 b_3 \ldots b_nb2b3…bn ;
  • if |b| > 0∣b∣>0 , delete the last character of the string bb , that is, replace bb with b_1 b_2 \ldots b_{n-1}b1b2…bn−1 .


Note that after each of the operations, the string aa or bb may become empty.


For example, if a=a= "hello" and b=b= "icpc", then you can apply the following sequence of operations:


  • delete the first character of the string aa \Rightarrow⇒ a=a= "ello" and b=b= "icpc";
  • delete the first character of the string bb \Rightarrow⇒ a=a= "ello" and b=b= "cpc";
  • delete the first character of the string bb \Rightarrow⇒ a=a= "ello" and b=b= "pc";
  • delete the last character of the string aa \Rightarrow⇒ a=a= "ell" and b=b= "pc";
  • delete the last character of the string bb \Rightarrow⇒ a=a= "ell" and b=b= "p".


For the given strings aa and bb , find the minimum number of operations for which you can make the strings aa and bb equal. Note that empty strings are also equal.


输入格式



The first line contains a single integer tt ( 1 \le t \le 1001≤t≤100 ). Then tt test cases follow.


The first line of each test case contains the string aa ( 1 \le |a| \le 201≤∣a∣≤20 ), consisting of lowercase Latin letters.


The second line of each test case contains the string bb ( 1 \le |b| \le 201≤∣b∣≤20 ), consisting of lowercase Latin letters.


输出格式



For each test case, output the minimum number of operations that can make the strings aa and bb equal.


题意翻译



你有两个字符串  a,b,你可以对这个字符串进行下面的操作:


  • 如果 a  非空,删除 a 的第一个字符。
  • 如果 a  非空,删除 a  的最后一个字符。
  • 如果 b  非空,删除  b 的第一个字符。
  • 如果 b  非空,删除 b  的最后一个字符。


求至少需要多少次操作使 a  和 b  完全相同。注意,我们认为两个空串也是完全相同的。


T  组数据。


输入输出样例



输入

5

a

a

abcd

bc

hello

codeforces

hello

helo

dhjakjsnasjhfksafasd

adjsnasjhfksvdafdser


输出  

0

2

13

3

20


题意分析;首先我们可以分析知道;我们要找一个二个串的公共最长串,然后我们把2个串的长度加起来减去公共最长串就是我们要的操作次数。具体操作看代码。


#include <bits/stdc++.h>
using namespace std;
void solve() 
{
  string a, b;
  cin >> a >> b;
  int maxk = 0;
  for (int i=0; i<a.size(); i++) 
  {
    for (int j=0; j<b.size(); j++) 
    {
      int k = 0;
      while (i+k < a.size() && j+k < b.size() && a[i+k] == b[j+k])k++;
      if (k > maxk) maxk = k;
    }
  }
  cout << a.size() + b.size() -2*maxk << endl;
}
int main() 
{
  int T;
  cin >> T;
  for (int i=1; i<=T; i++)solve();
}
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
当语言遇见智慧火花:GPT家族历代模型大起底,带你见证从平凡到卓越的AI进化奇迹!
【10月更文挑战第6天】随着自然语言处理技术的进步,GPT系列模型(Generative Pre-trained Transformers)成为该领域的明星。从GPT-1的开创性工作,到GPT-2在规模与性能上的突破,再到拥有1750亿参数的GPT-3及其无需微调即可执行多种NLP任务的能力,以及社区驱动的GPT-NeoX,这些模型不断进化。虽然它们展现出强大的语言理解和生成能力,但也存在如生成错误信息或偏见等问题。本文将对比分析各代GPT模型的特点,并通过示例代码展示其部分功能。
439 2
|
缓存 网络协议 数据库连接
C/S架构中HTTP错误状态码原因分析及解决办法
HTTP(Hypertext Transfer Protocol)是用于在客户端和服务器之间传输数据的协议。当在浏览器或其他HTTP客户端中访问网页时,可能会发生各种访问报错。我们需要根据网页提供的错误状态码分析错误原因,以找到相对应的解决办法。
1292 0
|
11月前
|
人工智能 数据处理 语音技术
LatentLM:微软联合清华大学推出的多模态生成模型,能够统一处理和生成图像、文本、音频和语音合成
LatentLM是由微软研究院和清华大学联合推出的多模态生成模型,能够统一处理离散和连续数据,具备高性能图像生成、多模态大型语言模型集成等功能,展现出卓越的多模态任务处理能力。
348 29
LatentLM:微软联合清华大学推出的多模态生成模型,能够统一处理和生成图像、文本、音频和语音合成
|
Shell Docker 容器
|
Linux Windows 虚拟化
【Linux环境搭建实战手册】:打造高效开发空间的秘籍
【Linux环境搭建实战手册】:打造高效开发空间的秘籍
|
编译器 数据处理 PHP
深入理解PHP 8.0的新特性及性能优化策略
【5月更文挑战第18天】本文将详细介绍PHP 8.0的新特性以及如何利用这些新特性进行性能优化。我们将从JIT编译器、联合类型、名称参数和匹配表达式等方面进行深入探讨,并通过实例分析如何在实际项目中应用这些新特性来提高代码的执行效率。
打印机,如何解决打印机打印有划痕的问题,内部需要清洗,找盆水,清洗,硒鼓盒拆开,怎样更容易放进去,头部朝下的地方先放进去,倾斜向下
打印机,如何解决打印机打印有划痕的问题,内部需要清洗,找盆水,清洗,硒鼓盒拆开,怎样更容易放进去,头部朝下的地方先放进去,倾斜向下
|
机器学习/深度学习 存储 人工智能
AI在出行场景的应用实践:路线规划、ETA、动态事件挖掘…
本文是#春招专栏#系列的第1篇,根据高德机器学习研发部负责人damon在AT技术讲坛所分享的《AI在出行领域的应用实践》的内容整理而成。
|
缓存 API 异构计算
数据缓存系列分享(二):23秒完成从零开始搭建StableDiffusion
通过文章 数据缓存系列分享(一):打开大模型应用的另一种方式 我们了解ECI数据缓在使用体验、性能等方面相比于NAS、OSS存储方式的优劣。本文将继续结合实际场景 StableDiffusion 应用讲解数据缓存在大模型方面所带来的极致体验。值得一提的是,即便是对于没有任何准备、零算法基础、零大模型背景知识的开发者也可以轻松地通过ECI API在短短的23秒的时间内就可以搭建一个完整的StableDiffusion应用。
1270 0
数据缓存系列分享(二):23秒完成从零开始搭建StableDiffusion
|
编解码 自然语言处理
用ffmpeg将视频转成gif动图
今天分享一个我制作表情包的技巧。现在视频编辑的门槛已经非常低了,只要装个剪映稍微学一下,很容易就能把你想要的内容剪出来,真的是有手就行。但是视频剪出来的视频是无法直接用做表情包的,只有gif格式的动图才是真正可以用的表情包。另外一点,在微信、企微等通讯软件中,gif动图的大小也是有严格限制的,比如微信和企微里最大是5MB,超过这个大小就会被当成文件传输,且无法被别人收藏转发,也就失去了表情包的意义。我这里分享一些用ffmpeg来生成gif动图的命令行示例,助力大家生产出更多有趣的表情包。
358 1