最长前缀

Java 简易版 UDP 多人聊天室 【代码】Java 简易版 UDP 多人聊天室。 阅读详情

最长前缀

时间限制:
1000ms
内存限制:
10000kB
描述

    已知一个字符串集合,如{A, AB, BA, CA, BBC},求给定序列前缀可由集合中字符串构成的最大长度,如ABABACABAABC得出11。

输入
输入包括多组测试数据,以EOF为结束。
每组测试数据第一行,包括一个整数n(1<=n<=10),表示表示字符串集合中字符串的个数。以下n行,每行一个字符串,字符串的长度不超过10。最后一行也是一个字符串,长度不超过100,表示要匹配的字符串。
所有字符串的字符都为大写字母。
输出
对于每组测试数据,只需输出一行,即给定字符串前缀可由集合中字符串组合的最大长度。
样例输入
5
A AB BA CA BBC
ABABACABAABC
样例输出
11

动态规划,不断产生子问题,知道子问题可以解决为止!

代码如下;

//最长前缀 动态规划
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char a[12][12];
int lenth[12];
char s[110];
int mark[110]; //存放从m到n的最长前缀数目,初始化为0
int n, s_lenth;
int dps(int m){
    // 表示从s[m]到s[n]的最长前缀
    // 当m=0时,即为串s的最长前缀
    if(m>=s_lenth){ //i+lenth[i] 可能会超过字符串的总长度,注意有“=”
        return 0;
    }
    if(mark[m]!=0){
        return mark[m];
    }
    for(int i=0; i<n; i++){
        int flag = 0;
        for(int t=0; t<lenth[i]; t++){
            if(s[m+t]!=a[i][t]){ //不匹配的情况
                flag = 1;
                break;
            }
        }
        //如果匹配,找出当前最长前缀数目
        if(!flag&&dps(m+lenth[i]) + lenth[i]>mark[m]){
            mark[m] = dps(m+lenth[i]) + lenth[i];
            }
    }
    return mark[m];
}
int main()
{
    //freopen("in.txt", "r", stdin);
    while (scanf("%d", &n)!=EOF){
        for (int i=0; i<n; i++){
            scanf("%s", a[i]);
            lenth[i] = strlen(a[i]);
        }
        scanf("%s", s);
        s_lenth = strlen(s);
        memset(mark, 0, sizeof(mark));
        printf("%d\n", dps(0));
    }
    return 0;
}


 

Ubuntu22.04安装ros(一键搞定) 然后发现可以一键安装,话不多说,直接终端输入如下指令。回车之后系统会自动安装ros。 阅读详情

相关推荐

Simulink中为Scope模块添加图例的方法

比如我要在Scope模块输出三轴加速度的数据,但三轴数据波形混杂在一起不太好看,此时就需要在Scope模块中添加图例来使波形看起来更加清晰明了。 注:我这里使用的Matlab版本为2019a 1.首先在simulink中打开,需要添加图例的Scope,如图示: 2.在Matlab,command窗口输入: >> set(0,'ShowHiddenHandles','On'); >> set(gcf,'menubar','figure'); 此时你会发现Scope窗口菜单栏多了好几

Kunfly的博客 1万+

耗时最长代码合集

CF Sasha and Array(最长注释,长达50行) #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<iostream> #include<cstring> #define num ch...

weixin_33739541的博客 4638

VisionPro九点标定实战:从相机拍照到机器人精准抓取的完整流程

本文详细介绍了VisionPro九点标定技术在工业自动化中的应用,从相机拍照到机器人精准抓取的完整流程。通过硬件配置、标定步骤和实战技巧的解析,帮助工程师实现高精度视觉引导系统,提升生产效率。特别适合需要解决二维图像坐标与物理空间转换问题的自动化项目。

weixin_30664051的博客 407

我至今写的最长的代码!!(学生成绩管理系统)

#include<stdio.h>#include<stdlib.h>#include<string.h>#defineNUM15#defineNAME25structstudent{charnum[NUM];charname[NAME];floatmathscore;//数学成绩intmathmici;floatengscor...

weixin_33757911的博客 395

【Codesys】获取从站信息,判断是否从站断联,总线丢失

获取EtherCAT从站信息,判断是否从站断联,总线丢失

qq_35316470的博客 5732

STM32硬件SPI驱动ADS1220实战:从零搭建高精度数据采集系统(附避坑指南)

本文详细介绍了使用STM32硬件SPI驱动24位高精度ADC芯片ADS1220的完整实战方案。内容涵盖从硬件设计、CubeMX工程配置、SPI通信底层实现到数据读取策略与性能优化的全流程,并重点分享了多通道切换、噪声抑制等关键避坑指南,帮助开发者构建稳定可靠的高精度数据采集系统。

o4p5q6r7s的博客 454

全网我不敢保证最长Hello World (c++代码)

我目前还在学习c++,因此,我会每周六/周五更新,来发布我目前的超长Hello world代码。我,一个c++蒟蒻,开始着手写最长的Hello World代码。欢迎大家和我一起来写代码哦!

doubendouya的博客 1285

得物APP破解

本文介绍了得物App(版本4.74.5)的逆向破解过程,重点分析了绕过强制更新、抓包技巧以及破解newSign参数的详细方法。首先通过断网再联网的方式绕过强制更新,然后使用SocksDroid进行抓包分析,发现首页推荐接口需要newSign参数。通过反编译定位到RequestUtils.c方法,利用Frida进行Hook验证,最终解析出newSign的生成逻辑:将请求参数加入固定字段后排序拼接,再进行MD5加密生成签名。文中提供了完整的Hook脚本和签名算法分析,仅供学习移动安全技术参考。

m0_74653634的博客 3496

有史以来最长的代码 第二周第一题

#include<cstdio> #include<cstdlib> #include<iomanip> #include<iostream> using namespace std; typedef struct node *link; typedef struct node { double a1; int b1; link next; }Node; link NewNode() { return (link)malloc(sizeof(Node)

olssa的博客 7336

零基础微信理财通基金实操指南(2026版)

先活下来:保证不亏大钱,再想赚钱慢慢变富:年化10%,7年翻倍,这已经很好了开始比完美重要:今天先存100元到零钱通,就是最好的开始现在打开微信,进入理财通,完成第一步风险测评吧!有任何问题可以随时问,我会用最通俗的方式解释。

老韩的Linux云计算架构师进阶之路 1691

自然语言处理6 -- 情感分析

1 概述 情感分析是自然语言处理中常见的场景,比如淘宝商品评价,饿了么外卖评价等,对于指导产品更新迭代具有关键性作用。通过情感分析,可以挖掘产品在各个维度的优劣,从而明确如何改进产品。比如对外卖评价,可以分析菜品口味、送达时间、送餐态度、菜品丰富度等多个维度的用户情感指数,从而从各个维度上改进外卖服务。 情感分析可以采用基于情感词典的传统方法,也可以采用基于深度学习的方法,下面详细讲解 ...

谢杨易的博客 5万+

【完虐算法】「字符串-最长公共前缀」5种方法脑洞大开

文章目录说在前面字符串 - 最长公共前缀案例 - 14.最长公共前缀【简单】方法一 Python zip轻松解决方法二 纵向比较方法三 横向比较(咸鱼比较法)方法四 分治思想解决【较重要】方法五 二分思想解决【较重要】 大家好!我是Johngo! 今天不准备一个专题的模块进行分享。 最近在专题制作过程中遇到了最长前缀公共子串的问题,也是读者最近校招面试到的一个题目。为什么拿出这个来说呢? 可怕的是,他居然给了 5 种解题方法。 更可怕的是,因此他直接少了一轮面试,天哪!! 今天顺便分享出来,作为「字符串」

yydsxizozhu的博客 2962

基于SpringBoot+SpringCloud+Vue前后端分离项目实战 --开篇

如何高效学习Java? 毕业设计项目应该怎么做?入门实战项目应该怎么做? 做Java开发都应该学习哪些框架技术? 我想来跟你聊聊为什么要学习此专栏?我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,当你迷茫想努力没有方向时,最事半功倍的方法是:找人带你! 因为过来人,更懂得如何学、如何做、如何少走弯路! 那今天就给大家带来一门专栏课程,由 天罡gg 和 经海路大白狗 两位实力大牛合力打造的一款专栏,可以让你从0到1快速拥有企业级规范的项目实战经验!

天罡gg的专栏 2万+

LeetCode-最长公共前缀

几天没法博文浑身难受,最近琐事缠身,水一篇easy的题解吧 题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 解题思路: 假设第一个字符串(strs[0])就是最长前缀 遍历strs字符串 用第一个字符串的每一项对比后面字符串的每一项,获得并保存最长公共前缀 public static String longestCommonPrefix(S...

小名同学 20万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

最长前缀匹配

最长前缀匹配机制(Longest Prefix Match Algorithm)是目前行业内几乎所有的路由器都缺省采用的一种路由查询机制。 当路由器收到一个IP数据包时,它会将数据包的目的IP地址与自己本地路由表中的所有路由表进行逐位(Bit-By-Bit)对比,直到找到匹配度最长的条目,这就是最长前缀匹配机制。 172.16.1.0/24 “&&” "·"表示与 (逻辑与)是逻...

爱意随风起,人生不可弃。 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

最长公共前缀

题目描述:给k个字符串,求出他们的最长公共前缀(LCP) 样例:在 "ABCD" "ABEF" 和 "ACEF" 中,  LCP 为 "A";在 "ABCDEFG", "ABCEFG", "ABCEFA" 中, LCP 为 "ABC" 其实最简单的方法,两两比较就行。 我用的是这种思路:先找出字符串数组中最长的字符串(为方便描述,记为max_str),然后用max_str从数组的头开始依次比

guoziqing506的博客 4276

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

最长公共前缀_最长的公共前缀

最长公共前缀Problem statement: 问题陈述: Write a function to find the longest common prefix string amongst an array of strings. 编写函数以在字符串数组中找到最长的公共前缀字符串 。 If there is no common prefix, return an empty strin...

cumt951045的博客 678

C++ 最长公共前缀

题目 最长公共前缀: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 该题目有两种解法: 1.纵向比较 因为提取的是前缀字符串,所以我们就选择strs数组中第一个元素作为基准。 然后我们将该元素与数组中每一个元素进行位比较。例如: (盗图,来自于这里) 比较所有元

YiYeZhiNian的博客 3547

leetcode14--最长公共前缀 前缀树

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串""。 示例1: 输入: ["flower","flow","flight"] 输出: "fl" 示例2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母a-z。 本题大概有四种解法: 1. 横向扫描:比...

ai-july 1684

最长公共前缀后缀_最长的前缀和后缀

最长公共前缀后缀Problem statement: 问题陈述: Given a string of character, find the length of longest proper prefix which is also a proper suffix. 给定一个字符串,找到最长适当前缀的长度,这也是一个适当的后缀。 Input: 输入: First line is T n...

cumtv80668的专栏 2595

Python中最长公共前缀

最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。 示例 1:输入: [“flower”,“flow”,“flight”]输出: "fl"示例 2:输入: [“dog”,“racecar”,“car”]输出: ""解释: 输入不存在公共前缀。 思路1: 可循环遍历列表中每个字符串,判断字符串相同的位置的字母是否相等,如果相等则记录字母并判断下一个字母,否则就返回记录的字符串。 mls1 = ["flower","flow","flight"] mls1 = [

Python热爱者的博客 5026
上一篇: 最短回文串
下一篇: Pyramids
GOFORACM
博客等级 码龄15年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值