早教吧作业答案频道 -->其他-->
跪求编程大神速速帮忙解决,算法设计判断单词接龙.汉语里面有词语接龙,如“喜大普奔->奔走相告”,在英文中由于英文单词长度不不一,有所变化,规定前一个单词尾部若干个字母与后一个单
题目详情
跪求编程大神速速帮忙解决,算法设计判断单词接龙.
汉语里面有词语接龙,如“喜大普奔->奔走相告”,在英文中由于英文单词长度不不一,有所变化,规定前一个单词尾部若干个字母与后一个单词的开头若干个字母相同,则接龙成功,如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;
}
看了跪求编程大神速速帮忙解决,算法...的网友还看了以下:
高中必修3算法试着描述判断(X-X1)^2+(y-y1)v2=r^2和直线Ax+Bx+C=0的位置 2020-05-13 …
(一)某建筑业企业有关资料如下:报告期内工程结算收入600万元,工程结算成本480万元,工程结算税金 2020-05-30 …
请问下面这些题目哪些能够使用简便计算?请帮忙把能够使用简便计算的题目的具体过程告诉我,1、1.47 2020-06-06 …
请问下面哪些题目能使用简便计算?请把能使用简便计算的具体过程告诉我,1、(69分之1+71分之2) 2020-06-06 …
灯杆重量计算方法,如下口径210,上口径76,壁厚4MM,高10米的Q235钢是多少重量?请将详细 2020-06-30 …
关于长期债券的一道计算题大家好!请帮忙解决下到题应该选择啥?并将解题过程告知在下,谢谢甲公司于20 2020-06-30 …
已知北纬或者南纬为60度的纬线,算出该纬线的长度是赤道长度的几分之几?希望您把算出的过程告诉我, 2020-07-03 …
127磅等于多少斤?请将在计算器上的计算过程告知. 2020-07-05 …
英语翻译说明:根据以下信息代王凯写一张便条.〔告诉刘经理次日早上9点钟王凯将到他办公室与他讨论有关 2020-07-14 …
英文中表示"大"都有哪些说法或者单词?能用上程度副词的也算,比如large和verylarge但是做 2020-11-01 …