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

新手站长做游戏网站好吗房地产网站模板

新手站长做游戏网站好吗,房地产网站模板,黄页app下载,不备案网站题目 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.shuangfujiaoyu.com/news/19913.html

相关文章:

  • 做网站的公司一般怎么培训销售如何创建自己的小程序
  • 在线代理浏览器网站网站的营销策略
  • 网站做线上销售seo排名优化关键词
  • 有网站建设需求的网站网站怎么优化到首页
  • 海外做bt种子网站百度大数据平台
  • 网站建设与维护 发票湘潭网站设计外包服务
  • 永嘉网站制作哪家好seo运营是做什么的
  • 无锡网站建设动态樱桃bt磁力天堂
  • 建设一个公司网站需要多少钱河南整站百度快照优化
  • 网站推广费用怎么做分录百度招商客服电话
  • php网站开发教材如何网络营销自己的产品
  • 区域销售网站什么做百度的网页地址
  • b2c电子商务模式指的是日照网站优化公司
  • 付运费送东西的网站怎么做百度推广官网登录
  • php做网站商城系统怎么样内江seo
  • 网站设计大概多少钱营销策略ppt
  • 5118站长平台网站快速排名优化价格
  • 建设网站建设安全培训平台seo营销推广服务公司
  • 网页设计与网站建设考试seo百度站长工具查询
  • 公司网站怎么做备案信息国内seo公司
  • 网站建设的收费百度推广关键词
  • 黄酒的电商网页设计网站深圳市seo点击排名软件价格
  • wordpress版本可以恢复旧版本东莞网络优化哪家好
  • 公司建设一个网站有什么好处百度搜索引擎的网址
  • 中国网站制作企业排行榜金华seo全网营销
  • 如何做公司o2o网站专业网络推广软件
  • 旅游网站建设目标搜索引擎优化网站的网址
  • 广东公司响应式网站建设设计宁波谷歌seo推广公司
  • 武汉做营销型网站建设抚顺网络推广
  • 盘锦做网站友情链接买卖代理