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

用织梦做模板网站贵阳网站建设

用织梦做模板网站,贵阳网站建设,网站主持人,做网站时量宽度的尺子工具题目 Cpp 【问题描述】 求N个字符串的最长公共子串&#xff0c;2 < N&#xff1c;&#xff1d;20&#xff0c;字符串长度不超过255。 例如&#xff1a;N&#xff1d;3&#xff0c;由键盘依次输入三个字符串为 What is local bus? Name some local buses. local bus is a h…

题目

Cpp
【问题描述】
求N个字符串的最长公共子串,2 < N<=20,字符串长度不超过255。
例如:N=3,由键盘依次输入三个字符串为
What is local bus?
Name some local buses.
local bus is a high speed I/O bus close to the processer.
则最长公共子串为"local bus"。


分析

找n个字符串中的最大公共子串。


思路

先遍历出其中两个字符串的所有公共子集,然后后面每输入一个字符串就排除掉几个不存在当中的,最后找出最长的输出。


代码

  1. 框架

    int main(){return 0;
    }
    

  2. 先输入前两个字符串。

    #include<cstdio>	//scanf()
    char a[256], b[256];
    int main(){scanf("%[^\n]\n%[^\n]", &a, &b);return 0;
    }
    

  3. 找出这两个字符串的公共子串。详情可见这篇。

    #include<cstdio>	//scanf()
    #include<cstring>	//strlen(), memset(), strstr(), strcpy()
    char a[256], b[256], t[256], c[256*256][256];
    int x;
    int main(){scanf("%[^\n]\n%[^\n]", &a, &b);for(int i=0; i<strlen(a); i++){memset(t, 0, sizeof(t));for(int j=0; j<strlen(a)-i; j++){t[j]=a[i+j];if(strstr(b, t)!=NULL){strcpy(c[x], t);x++;}}}return 0;
    }
    

    数组t:临时用,存放当前遍历到的子串。
    二维数组c:存放遍历到的所有公共子串。
    整形变量x:代表所有公共子串的数量。


  4. 输入剩下的字符串,边输入一边删除不存在的子串。记得修改变量x。

    #include<cstdio>	//scanf()
    #include<cstring>	//strlen(), memset(), strstr(), strcpy()
    char a[256], b[256], t[256], c[256*256][256];
    int x;
    int main(){scanf("%[^\n]\n%[^\n]", &a, &b);for(int i=0; i<strlen(a); i++){memset(t, 0, sizeof(t));for(int j=0; j<strlen(a)-i; j++){t[j]=a[i+j];if(strstr(b, t)!=NULL){strcpy(c[x], t);x++;}}}while(scanf("\n%[^\n]", &b)!=EOF){for(int i=x-1; i>=0; i--){if(strstr(b, c[i])==NULL){for(int j=i; j<x; j++){strcpy(c[i], c[i+1]);}x--;}}}return 0;
    }
    

  5. 找出公共子串中,最长的子串,并输出。

    #include<cstdio>	//scanf(), printf()
    #include<cstring>	//strlen(), memset(), strstr(), strcpy()
    char a[256], b[256], t[256], c[256*256][256];
    int x;
    int main(){scanf("%[^\n]\n%[^\n]", &a, &b);for(int i=0; i<strlen(a); i++){memset(t, 0, sizeof(t));for(int j=0; j<strlen(a)-i; j++){t[j]=a[i+j];if(strstr(b, t)!=NULL){strcpy(c[x], t);x++;}}}while(scanf("\n%[^\n]", &b)!=EOF){for(int i=x-1; i>=0; i--){if(strstr(b, c[i])==NULL){for(int j=i; j<x; j++){strcpy(c[i], c[i+1]);}x--;}}}memset(a, 0, sizeof(a));for(int i=0; i<x-1; i++){if(strlen(c[i])>strlen(a)){strcpy(a, c[i]);}}printf("%s", a);return 0;
    }
    


答案

#include<cstdio>	//scanf(), printf()
#include<cstring>	//strlen(), memset(), strstr(), strcpy()
char a[256], b[256], t[256], c[256*256][256];
int x;
int main(){scanf("%[^\n]\n%[^\n]", &a, &b);for(int i=0; i<strlen(a); i++){memset(t, 0, sizeof(t));for(int j=0; j<strlen(a)-i; j++){t[j]=a[i+j];if(strstr(b, t)!=NULL){strcpy(c[x], t);x++;}}}while(scanf("\n%[^\n]", &b)!=EOF){for(int i=x-1; i>=0; i--){if(strstr(b, c[i])==NULL){for(int j=i; j<x; j++){strcpy(c[i], c[i+1]);}x--;}}}memset(a, 0, sizeof(a));for(int i=0; i<x-1; i++){if(strlen(c[i])>strlen(a)){strcpy(a, c[i]);}}printf("%s", a);return 0;
}

http://www.ds6.com.cn/news/73901.html

相关文章:

  • 郑州视频网站建设深圳今日头条新闻
  • 文登市城乡建设局网站怎么策划一个营销方案
  • 建设网站要电脑才能吗最近三天发生的重要新闻
  • 电商网站需要多少钱百度seo官方网站
  • 成都网站建设哪家便宜一键生成app制作器
  • 网站关键词选择百度权重4网站值多少钱
  • 设计得好的美食网站如何在网上做销售推广
  • 搜狗收录网站竞价托管推广公司
  • 网站定位是什么怎么自己做网站
  • 沛县做网站搭建网站的五大步骤
  • 人像写真短视频seo教程排名第一
  • 网站如何做流媒体查询网 域名查询
  • 网站怎么做json数据库厦门seo招聘
  • 中国建设银行河南省分行网站营销型网站建设企业
  • asp动态网站开发实训报告对百度竞价排名的看法
  • 招聘信息最新招聘2021seo做什么网站赚钱
  • 没有经验可以做网站编辑吗谷歌关键词排名查询
  • 中小企业网站制作公司推广竞价账户托管
  • 长沙网站推广怎么网上推广自己的产品
  • 网站做内嵌关键词热度分析
  • 网站项目策划方案无锡网站服务公司
  • 临汾做网站的公司推广普通话宣传海报
  • 个人兼职做网站免费自助建站网站
  • 遵义网站制作的网站百度网站官网
  • 东莞新增疫情最新情况做网络优化的公司排名
  • 网站开发确认书百度一下就一个
  • wordpress布局优化网站排名推广
  • 苏州企业门户网站郑州网站推广哪家专业
  • 打电话拉客户用网站做广告怎么做 好做吗seo基础
  • 北京专业的做网站手机优化大师哪个好