当前位置: 首页 > news >正文

《CF25E Test》

题目描述

给定 3 个字符串 s1​,s2​,s3​,试求一个字符串,使 s1​,s2​,s3​ 都是这个字符串的子串,并使这个字符串最短。输出最短字符串的长度 l。

输入格式

第一行输入一个字符串,表示 s1​。

第二行输入一个字符串,表示 s2​。

第三行输入一个字符串,表示 s3​。

输出格式

第一行输出一个正整数,表示答案 l。

显示翻译

题意翻译

输入输出样例

输入 #1复制

ab
bc
cd

输出 #1复制

4

输入 #2复制

abacaba
abaaba
x

输出 #2复制

11

说明/提示

1≤∣s1​∣,∣s2​∣,∣s3​∣≤105。

代码实现;

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string merge(const string& a, const string& b) {
    int len_a = a.length();
    int len_b = b.length();
    for (int i = min(len_a, len_b); i >= 0; --i) {
        if (a.substr(len_a - i) == b.substr(0, i)) {
            return a + b.substr(i);
        }
    }
    return a + b;
}

int main() {
    string s1, s2, s3;
    cin >> s1 >> s2 >> s3;
    
    vector<string> strs;
    strs.push_back(s1);
    strs.push_back(s2);
    strs.push_back(s3);
    
    vector<int> perm;
    perm.push_back(0);
    perm.push_back(1);
    perm.push_back(2); 
    int min_len = INT_MAX;
    
    do {
        string merged = merge(strs[perm[0]], strs[perm[1]]);
        merged = merge(merged, strs[perm[2]]);
        if (merged.length() < min_len) {
            min_len = merged.length();
        }
    } while (next_permutation(perm.begin(), perm.end()));
    
    cout << min_len << endl;
    
    return 0;
}

http://www.xdnf.cn/news/529867.html

相关文章:

  • 浏览器的奇幻之旅:从输入网址到页面出现的幕后故事
  • ISO 26262-5 硬件详细设计
  • RV1126多线程获取SMARTP的GOP模式数据和普通GOP模式数据
  • 如何用体育数据做分析:从基础统计到AI驱动的决策科学
  • DB31/T 1545—2025《卫生健康数据分类分级要求》上海地方标准全面解析与未来对医院数据管理以及数据编程影响
  • gtest 库的安装和使用
  • 【保姆级】Nginx简介以及安装
  • vue3中element-plus修改el-tooltip的宽度
  • vue2使用three.js实现一个旋转球体
  • AI自媒体封面生成系统
  • c++字符串常用语法特性查询示例文档(二)
  • HarmonyOS开发样式布局
  • web常见的攻击方式
  • UniApp 实现的文件预览与查看功能#三方框架 #Uniapp
  • 阻塞队列:线程安全与生产者消费者模型解析
  • nginx 流量控制
  • map与set封装
  • Web安全基础
  • 十三、面向对象底层逻辑-Dubbo序列化Serialization接口
  • MacBook连接不上星巴克Wi-Fi的解决方法
  • 《Effective Python》第三章 循环和迭代器——在遍历参数时保持防御性
  • 江协科技EXTI外部中断hal库实现
  • 需求频繁变更?AI 驱动的自动化解决方案实践
  • 企业销售管理痛点解析与数字化解决方案
  • Unity 如何使用Timeline预览、播放特效
  • 第十六届蓝桥杯复盘
  • C#中的ThreadStart委托
  • 软件架构风格系列(7):闭环控制架构
  • 基于不透光法的柴油机排放精准监测
  • Android13 以太网(YT8531)