早教吧作业答案频道 -->其他-->
跪求编程大神速速帮忙解决,算法设计判断单词接龙.汉语里面有词语接龙,如“喜大普奔->奔走相告”,在英文中由于英文单词长度不不一,有所变化,规定前一个单词尾部若干个字母与后一个单
题目详情
跪求编程大神速速帮忙解决,算法设计判断单词接龙.
汉语里面有词语接龙,如“喜大普奔->奔走相告”,在英文中由于英文单词长度不不一,有所变化,规定前一个单词尾部若干个字母与后一个单词的开头若干个字母相同,则接龙成功,如romantic, anticlimax两个单词可接龙,称’antic’ 为连接串,而committee,eerily,其连接串是’e’、’ee’,设计一个算法,判断两个词是否能够“接龙”成功,如果能接龙,则求取最大长度的“连接串”.选择擅长的程序设计语言,实现该算法并分析其算法复杂度.(单词由小写英文字母组成,最多不超过5000个字符).
例1.
输入:romantic //第1行
anticlimax//第2行
输出:antic
列2:
输入:committee
eerily
输出:ee
例3
输入:come
October
输出:接龙不成功
例4:
输入:mama
mamaliga
输出:mama
汉语里面有词语接龙,如“喜大普奔->奔走相告”,在英文中由于英文单词长度不不一,有所变化,规定前一个单词尾部若干个字母与后一个单词的开头若干个字母相同,则接龙成功,如romantic, anticlimax两个单词可接龙,称’antic’ 为连接串,而committee,eerily,其连接串是’e’、’ee’,设计一个算法,判断两个词是否能够“接龙”成功,如果能接龙,则求取最大长度的“连接串”.选择擅长的程序设计语言,实现该算法并分析其算法复杂度.(单词由小写英文字母组成,最多不超过5000个字符).
例1.
输入:romantic //第1行
anticlimax//第2行
输出:antic
列2:
输入:committee
eerily
输出:ee
例3
输入:come
October
输出:接龙不成功
例4:
输入:mama
mamaliga
输出:mama
▼优质解答
答案和解析
int main()
{
char first[20] = {0};
char second[20] = {0};
char key[20] = {0};
//input
printf("please input first word:");
scanf("%s", first);
printf("please input second word:");
scanf("%s", second);
//begin
bool found = false;
for (int i = 0; i < 20; i ++)
{
char tmp = first[i];
if (tmp == second[0])
{
found = true;
}
if (found == true)
{
int len = 0;
for (int l = i, j = 0; l < 20, j < 20; l ++, j ++)
{
if (first[l] != 0)
{
key[j] = first[l];
len ++;
}
else
break;
}
for (int j = 0; j < len; j ++)
{
if (key[j] != second[j])
{
found = false;
memset(key, 0x00, sizeof(key)/sizeof(key[0]));
}
}
if (found)
printf("the max keyword is: %s \n", key);
else
printf("can not found the key word! \n");
}
}
return 0;
}
{
char first[20] = {0};
char second[20] = {0};
char key[20] = {0};
//input
printf("please input first word:");
scanf("%s", first);
printf("please input second word:");
scanf("%s", second);
//begin
bool found = false;
for (int i = 0; i < 20; i ++)
{
char tmp = first[i];
if (tmp == second[0])
{
found = true;
}
if (found == true)
{
int len = 0;
for (int l = i, j = 0; l < 20, j < 20; l ++, j ++)
{
if (first[l] != 0)
{
key[j] = first[l];
len ++;
}
else
break;
}
for (int j = 0; j < len; j ++)
{
if (key[j] != second[j])
{
found = false;
memset(key, 0x00, sizeof(key)/sizeof(key[0]));
}
}
if (found)
printf("the max keyword is: %s \n", key);
else
printf("can not found the key word! \n");
}
}
return 0;
}
看了跪求编程大神速速帮忙解决,算法...的网友还看了以下:
铅在与硫酸反应时生成硫酸铅附在铅版表面阻止里面继续反应!该怎么解决求教了大哥大姐用硫酸溶解铅时.铅 2020-05-17 …
有一个大圆,里面有2个半圆和1个圆.圆A直径9厘有一个大圆,里面有2个半圆和1个圆.半圆A(半圆) 2020-06-19 …
某酒店的一个大厅里,为了使客人感觉厅内宽敞明亮,主人在迎面墙上装了一面与墙等大的平面镜,这里利用了 2020-06-26 …
某酒店的一个大厅里,为了使客人感觉厅内宽敞明亮,主人在迎面墙上装了一面与墙等大的平面镜,这里利用了 2020-06-26 …
关于液体压强的一个疑惑一个上下底面积不同的圆柱体,假设下底面大在里面装一定的水把这个圆柱体用下底面 2020-06-27 …
圆中方里面还有一个圆,要求大圆的面积与正方形面积的比,小圆面积和正方形面积的比,大圆面积与小圆面 2020-07-29 …
平面镜成的像和物等大?平面镜像与物等大的?那么为什么在一面小镜里也可以成出比它大好多倍的像?,如果是 2020-11-04 …
简历里面的“参与”了什么工作的“参与”用一个简明的英文单词表示是什么?千万不要join,partic 2020-11-08 …
请问与运算&里面0与0是等于0还是等于1呢?教程里面说是等于1.可是这个题目里面:10010001( 2020-12-05 …
腰侧面大腿里面骨头疼是什么原因? 2021-06-28 …