CF1506C Double-ended Strings 题解

技术CF1506C Double-ended Strings 题解 CF1506C Double-ended Strings 题解CF1506C Double-ended Strings 题解Conte

CF1506C双端字符串问题的解释

CF1506C双端字符串问题的解释

Content

有两个字符串\(a,b\)。我们可以在每次操作中删除两个字符串之一(可以将某个字符串通过若干次操作变为空串)的第一个或最后一个字符。需要多少次操作才能使\(a,b\)两个字符串相同?

数据范围:\(t\) 组数据,\(1\leqslant t\leqslant 100\),\(1\leqslant |a|,|b|\leqslant 20\)。

Solution

我们发现只要你能找到\(a,b\)两个字符串之间的公共部分,你只需要删除除了这个公共部分之外的其他部分,所以这个问题本质上是要求我们找到\(a,b\)的最长公共子串的长度。而且因为\(a,b\)的长度很小,所以我们考虑直接枚举。

首先,枚举两个字符串中的子字符串的起始位置,然后枚举长度。然后,使用STL中的substr函数提取两个字符串的子字符串。如果两个子串相等,比较前面的答案,选择较大的长度。让我们最终得到的最长公共子串是\(s\),那么答案就是\(|a| |b|-2\cdot|s|\)。

Code

字符串a,b;

int main(){ 0

MT {

CIN a;int len 1=a . size();CIN b;int len 2=b . size();

int ans=0;

F(int,I,0,len1 - 1) F(int,j,0,len2 - 1) F(int,k,0,len1 - i) F(int,l,0,len 2-j){ 0

if(k!=l)继续;//连长度都不一样。这两个子串肯定是不一样的。跳过。

字符串s1=a.substr(i,k),s2=b.substr(j,l);

if(s1==s2) ans=max(ans,(int)S1 . size());

}

println(len 1 len 2-ans * 2);

}

返回0;

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147915.html

(0)

相关推荐

  • 树莓派如何控制温湿度传感器DHT11

    技术树莓派如何控制温湿度传感器DHT11树莓派如何控制温湿度传感器DHT11,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。小π因为好几次断电之前没有关掉

    攻略 2021年11月19日
  • 如何在NetBeans Java ME polish环境下开发BlackBerry应用

    技术如何在NetBeans Java ME polish环境下开发BlackBerry应用这期内容当中小编将会给大家带来有关如何在NetBeans Java ME polish环境下开发BlackBerry应用,文章内容

    攻略 2021年10月23日
  • Tomcat9中容器结构与生命周期的示例分析

    技术Tomcat9中容器结构与生命周期的示例分析这篇文章将为大家详细讲解有关Tomcat9中容器结构与生命周期的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。容器的生命周期容器

    攻略 2021年12月11日
  • ES如何对word和PDF文档进行全文搜索。

    技术ES如何对word和PDF文档进行全文搜索。本篇文章为大家展示了ES如何对word和PDF文档进行全文搜索。,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。ES 对 word和

    攻略 2021年10月29日
  • 如何解决php header失效

    技术如何解决php header失效本篇内容主要讲解“如何解决php header失效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决php header失效”吧!解决

    攻略 2021年10月23日
  • 蛋清打发,蛋清打发不起来的原因是什么

    技术蛋清打发,蛋清打发不起来的原因是什么您好,很高兴来回答您的这个问题蛋清打发。依我个人的制作经验,蛋清打发不起来的原因有以下几个关键点:首先,鸡蛋的选择。用来做蛋糕的鸡蛋,必须使用新鲜的鸡蛋。通常情况下,鸡蛋放在冰箱时

    生活 2021年10月27日