HJ65 查找两个字符串a,b中的最长公共子串(一把过)

【牛客网华为机试】HJ65 查找两个字符串a,b中的最长公共子串 题目 描述 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开! 本题含有多组输入数据! 输入描述: 输入两个字符串 输出描述: 返回重复出现的字符 示例1 输入: abcdefghijklmnop abcsafjklmnopqrstuvw 输出: jklmnop 解题思路 (1)定义str1为最短字符串,str2为最长字符串 (2)遍历短字符串s 阅读详情
描述
查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。
注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!

本题含有多组输入数据!
输入描述:
输入两个字符串

输出描述:
返回重复出现的字符
示例1
输入:
abcdefghijklmnop
abcsafjklmnopqrstuvw

输出:
jklmnop
#include <stdio.h>
#include <string.h>

#if 0
#define dbg printf
#else
#define dbg 
#endif

int main(void)
{
    char str1[1024] = {0};
    char str2[1024] = {0};
    char longer[1024] = {0};
    char shorter[1024] = {0};
    char test[1024] = {0};
    int len, len1, len2;
    int max;
    int i;
    
    while(scanf("%s", str1) != EOF)
    {
        scanf("%s", str2);
        len1 = strlen(str1);
        len2 = strlen(str2);
        
        if(len1 < len2)
        {
            len = len1;
            strncpy(longer, str2, strlen(str2));
            strncpy(shorter, str1, strlen(str1));
        }
        else
        {
            len = len2;
            strncpy(longer, str1, strlen(str1));
            strncpy(shorter, str2, strlen(str2));
        }
        dbg("(%d):longer=(%s)\n", __LINE__, longer);
        dbg("(%d):shorter=(%s)\n", __LINE__, shorter);
        
        max = len;
        for(max=len; max>0; max--)
        {
            for(i=0; i<=len-max; i++)
            {
                memset(test, 0, sizeof(test));
                strncpy(test, shorter+i, max);
                dbg("(%d):test=(%s)\n", __LINE__, test);
                if(strstr(longer, test) != NULL)
                {
                    goto PRINT;
                }
            }
        }
PRINT:
        printf("%s\n", test);
        memset(test, 0, sizeof(test));
        memset(str1, 0, sizeof(str1));
        memset(str2, 0, sizeof(str2));
        memset(longer, 0, sizeof(str1));
        memset(shorter, 0, sizeof(str2));
    }
}
D58站群系统最新版 这个是我在互站网买的,感觉不怎么好用,加密类型是 phpjm加密,自己下载下来需要解密的 百度搜索php在线解密选择phpjm解密即可,然后在美化代码就OK了,加密不是事,也不是我加密的我只是使用者而已。。。。 立即下载

相关推荐

D58站群软件

黑帽泛站群软件

【华为】查找两个字符串a,b的最长公共子串

题目: 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 输入描述: 输入两个字符串 输出描述: 返回重复出现的字符 示例1 输入 abcdefghijklmnop abcsafjklmnopqrstuvw 输出 jklmnop 题解: package test; import java.util.*; public class Main{ public static void main(String[] args){

qq1922631820的博客 705

Teleport_Ultra_1.65_full_SC直接可以用的网站离线软件

Teleport_Ultra_1.65_full_SC 重要的事情说三遍: 直接可以用的网站离线软件 直接可以用的网站离线软件 直接可以用的网站离线软件

HJ65 查找两个字符串a,b中的最长公共子串 练习

注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开!查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。进阶:时间复杂度:O(n3) O(n3) ,空间复杂度:O(n) O(n)数据范围:字符串长度1≤length≤300 1≤length≤300。

???的博客 155

java实现求两个字符串最长公共子串的方法

主要介绍了java实现求两个字符串最长公共子串的方法,是一道华为OJ上的一道题目,涉及Java针对字符串的遍历、转换及流程控制等技巧,需要的朋友可以参考下

基于微信小程序的扫码签到系统源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。签到管理:新增签到,点击查看码展示二维码(有时效性)springboot mybatis 小程序。签到管理:查看用户创建的签到,可删除。用户管理:查看注册用户信息,及删除。签到记录:查看用户签到记录:可删除。个人信息:展示个人信息,可修改。统计分析:查看用户,签到数量。签到记录:查看用户签到记录。登录注册(含授权登录)我的签到:查看签到记录。

wfuhui的博客 5224

HJ65 查找两个字符串a,b中的最长公共子串

一、题目 二、代码 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String str1 = in.nextLine(); String str2 = in.nextL

KevinChen2019的博客 761

vcs 覆盖率收集1——三种覆盖率类型、covergroup、bins、数据采样、覆盖率选项

介绍各种覆盖率,以及如何编写覆盖率收集的代码

qq_42135020的博客 1万+

收藏网址

It will be read and overwritten.      DO NOT EDIT! --> Bookmarks Bookmarks     书签栏             桌面支持中心         从 IE 中导入                     桌面支持中心             入职                    

u011569805的专栏 96万+

避坑指南:vue-print-nb打印隐藏元素与空白页的那些事儿

本文深入解析了使用vue-print-nb插件时,打印出现空白页及隐藏元素问题的根本原因与解决方案。核心在于理解浏览器打印原理,并通过CSS媒体查询精准控制样式。文章提供了从重置根元素高度、处理隐藏元素到控制分页的完整避坑指南,帮助开发者彻底解决打印样式难题。

weixin_29008691的博客 436

【Claude】Auto Mode 触发安全分类器拦截的三种错误变体及对应处理 bug报错已解决

深度解析Claude Auto Mode安全分类器拦截的三种变体:内容拒绝、操作中断、累积触发,含完整排查流程与绕过策略。

博客 7577

华为机试HJ65 查找两个字符串a,b中的最长公共子串

首先看一下题。

bingw0114的博客 768

使用libVLC进行视频截图的C/C++实现

通过这些代码,你可以在C/C++应用程序中实现视频截图功能,并将视频帧保存为图像文件。请注意,本文只提供了基本的示例代码,你可以根据自己的需求进行扩展和修改。libVLC是一个强大的开源多媒体框架,可以用于在C/C++应用程序中处理和播放音频和视频文件。我们将展示如何初始化libVLC,打开视频文件,捕获视频帧并保存为图像文件。在开始编写代码之前,你需要包含libVLC的头文件,并链接相应的库文件。在链接阶段,你需要添加libVLC库的链接选项。在使用libVLC之前,你需要初始化libVLC的实例。

学习使你进步。 470

华为机试HJ65:查找两个字符串a,b中的最长公共子串

C++实现——查找两个字符串a,b中的最长公共子串

翟天保的博客 1万+

K8S部署Java项目(Gitlab CI/CD自动化部署终极版)

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 6954

LAMMPS-使用MATLAB计算径向分布函数

首先需要使用LAMMPS进行分子动力学模拟,并获取到所需的数据文件,LAMMPS是一款开源的分子动力学模拟软件,可以模拟原子、分子和离子的运动行为,对于本文的目标假设你已经完成了LAMMPS的安装和模拟过程,获得了数据文件。)是一种重要的统计工具,用于描述原子或分子之间的空间分布情况,通过计算RDF可以获得物质的结构信息、相互作用距离以及相位转变等重要参数,本文将介绍如何使用MATLAB计算LAMMPS生成的数据文件的径向分布函数。变量替换为你的实际数据文件的名称。

weixin_50547796的博客 514

机试刷题_HJ65 查找两个字符串a,b中的最长公共子串【Java】

字符串

yuanyuet的博客 220

第0章 《机器人工程师带你入门SLAM》专栏所有文章目录汇总(截止目前115篇文章),方便大家查看阅读

《机器人工程师带你入门SLAM》专栏文章汇总:优快云热销专栏已更新100+篇优质内容,涵盖SLAM技术全栈知识体系。文章分为三大类:1)基础工具与环境配置,包括Ubuntu、Git等必备技能;2)C++编程从入门到进阶,详解变量、类、模板等核心概念;3)SLAM核心库实战,深入解析ROS、Eigen、PCL等关键库的应用。专栏提供从计算机基础到项目实战的系统学习路径,并附代码实例。点击专栏主页可订阅查看全部内容,后续将保持更新。

行知SLAM 1062

java-HJ65_查找两个字符串a,b中的最长公共子串

java-HJ65 查找两个字符串a,b中的最长公共子串。

d3y1`5 81_09 185

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: HJ64 MP3光标位置
下一篇: HJ62 查找输入整数二进制中1的个数(一把过,幼儿园难度)
你板子冒烟了
博客等级 码龄8年 1278粉丝 582原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值