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)

相关推荐

  • ArrayList扩容机制

    技术ArrayList扩容机制 ArrayList扩容机制写在前面
    数据结构在面试中基本都是常问的,但是一般开发中基本上都是在使用没有去关心过怎么实现的。
    在数据结构中,链表是一种线性存储结构,也就是常

    礼包 2021年11月25日
  • 查看mysql错误日志的方法是什么

    技术查看mysql错误日志的方法是什么本篇内容介绍了“查看mysql错误日志的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,

    攻略 2021年12月2日
  • 钱塘江观潮最佳时间和地点,钱塘江观潮最佳时间和路线

    技术钱塘江观潮最佳时间和地点,钱塘江观潮最佳时间和路线钱塘江最佳观潮地点:  “八月十八潮,壮观天下无钱塘江观潮最佳时间和地点。”这是北宋大诗人苏东坡咏赞钱塘秋潮的千古名句。千百年来,钱塘江以其奇特卓绝的江潮,不知倾倒了

    生活 2021年10月23日
  • 乘方的意义,30 用乘方的意义计算

    技术乘方的意义,30 用乘方的意义计算求n个相同因数乘积的运算,叫做乘方,乘方的结果叫做幂(power)乘方的意义。 其中,a叫做底数(base number),n叫做指数(exponent),当aⁿ看作a的n次方的结果

    生活 2021年10月20日
  • vue中怎么使用vue-cropper裁剪图片

    技术vue中怎么使用vue-cropper裁剪图片这篇文章主要讲解了“vue中怎么使用vue-cropper裁剪图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中

    攻略 2021年11月24日
  • 怎么理解MySQL的API接口

    技术怎么理解MySQL的API接口这篇文章给大家介绍怎么理解MySQL的API接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MySQL 的 API 接口为了方便应用程序的开发,MySQL 提供了

    攻略 2021年11月17日