当前位置: 首页 > 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.fp688.cn/news/162672.html

相关文章:

  • 莘县网站定制24小时免费看的视频哔哩哔哩
  • wordpress Null桔子seo工具
  • 商业设计关键词优化步骤简短
  • 网站建设公司资讯免费手机网站建站系统
  • wordpress如何本地安装黄冈seo顾问
  • 做企业网站需要自己有公司吗网络销售怎么干
  • 邢台专业网站建设公司推荐今日热点新闻头条国内
  • 外贸类网站营销推广策略
  • 世界互联网峰会乌镇深圳关键词优化怎么样
  • 长春做网站的公司哪家好开展网络营销的企业
  • 关于网站建设的合同协议书一个产品的市场营销策划方案
  • 织梦网站在css中怎样做导航百度一下首页官网下载
  • 大连 找人做网站网站域名怎么查询
  • asp网站免费源码企业网站建设模板
  • 企业网站建设兴田德润实惠优化网站内容
  • 邗江建设局网站资料下载东莞做网络推广的公司
  • 网站文章页301重定向怎么做单页应用seo如何解决
  • wordpress无法映射seo网站关键词排名优化公司
  • 馆陶专业做网站推广之家
  • 天津专业的做网站与运营的公司微信怎么推广
  • 建筑招聘网站哪个好典型的网络营销案例
  • 做网站要注意些什么要求湘潭seo快速排名
  • 做淘客网站企业备案上海网站营销推广
  • 做企业信用贷的网站百度信息流是什么
  • 招工哪个平台最真实防城港网站seo
  • 食品网站建设方案疫情防控数据
  • 免费windows7云主机下载太原seo优化公司
  • 重庆江北区网站建设公司服务器域名怎么注册
  • 动态网站开发主要技术搜索引擎app
  • 协会网站建设方案模板建站流程