首页 > 编程知识 正文

java最长公共子串,c语言最长对称子串

时间:2023-05-04 08:47:09 阅读:160837 作者:2685

【问题描述】

编写一个程序,针对输入的字符串s和t,求出最长的公共子字符串。

【输入形式】

从屏幕分店读取字符串s和t。 s和t由任意字符组成,长度不超过50个字符。 输入数据以仅确保唯一的最长公共子列。 如果没有公共子字符串,请打印否定答案

【输出形式】

在单独的行中输出字符串s和字符串t的最长共同子串,最后输出换行。

算法提示:用一个int型计数器记录当前匹配长度,用一个字符数组记录当前匹配子串,如果有更长的子串,则相应替换。

【样例说明】

假设您在屏幕上输入以下内容:

aabcdababce

12abcabcdace

输出内容如下

abcda

#includestdio.hint main () charchar1(50 )、char2(50 )、a ) 50 )、b ) 50 ); //a[]表示公用字符串,而b[]表示最长公用字符串int i,j,s=0,k=0; GETS(char1; GETS(char2; for(I=0; i 50; I ) if(char1[I]!=0) for(j=0; j 50; j () if ) char2[j]==0) break; ELSE{if(char1[I]==char2[j] ) while ) char1[I]==char2[j] ) {a[k]=char1[i],k; //输出当前公共字符串I,j (if ) ks )//判断是否为最长公共字符串) {int t; for(t=0; t k; t(b ) t )=a ) t ); s=k; }}k=0; }}}}if(s==0) printf ) ) noanswer ); elsefor(I=0; i s; I ) printf('%c ',b[i]; 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。