VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 191|回复: 4

实用C++零基础入门课程课后习题答案

[复制链接]
08_avatar_middle
最佳答案
0 
在线会员 发表于 2020-10-8 16:32:12 | 显示全部楼层 |阅读模式
        实用C++零基础入门课程27课课后习题答案不太会写,求助实用C++零基础入门课程课后习题答案




上一篇:第十九课数组的作业,感觉有点难……
下一篇:双向管道后门,telnet没反应
70_avatar_middle
最佳答案
21 
在线会员 发表于 2020-10-9 16:59:28 | 显示全部楼层
首先我觉得这个问题就不太严谨实用C++零基础入门课程课后习题答案,(只是用来练习new 、delete的 似乎也不需要很严谨)

以下代码都是建立在  我认为题目的意思是  “求两个字符串的最长公共子串 ,并随机返回其中一个”的基础上的
用的枚举的算法,时间复杂度O(n3) ,效率极低,想高效率还得用正经算法(这里没必要,况且咱也不会实用C++零基础入门课程课后习题答案)。

  1. //求两个字符串的最长公共子串 ,并随机返回其中一个
  2. char* get_same_string(char* p1, char* p2) {
  3.     int maxLen = 0; //最长子串长度
  4.     char* maxIndexp = NULL; //记录最长子串在p1中对应的起始地址
  5.     int curLen = 0; //本轮子串长度

  6.     int p1Len = strlen(p1);
  7.     int p2Len = strlen(p2);
  8.     for (int i1 = 0; i1 < p1Len; ++i1) {        //p1
  9.         for (int i2 = 0; i2 < p2Len; ++i2) {    //p2
  10.             curLen = 0;
  11.             while ((p1[i1 + curLen] != 0) && (p1[i1 + curLen] == p2[i2 + curLen])) {    //首先保证数组不越界
  12.                 ++curLen;
  13.             }
  14.             if (curLen > maxLen) {
  15.                 maxLen = curLen;
  16.                 maxIndexp = p1 + i1;
  17.             }
  18.         }
  19.     }
  20.     if (maxLen == 0)
  21.         return NULL;
  22.     char* pSameString = new char[maxLen + 1];
  23.     memset(pSameString, 0, maxLen + 1);         //清空
  24.     memcpy(pSameString, maxIndexp, maxLen);     //复制
  25.     return pSameString;
  26. }
  27. int main()
  28. {
  29.     char p1[] = "aabbcc";
  30.     char p2[] = "kkbcyy";
  31.     char* pSameString = get_same_string(p1, p2);
  32.     cout << pSameString << endl;
  33.     delete[] pSameString;
  34.     return 0;
  35. }
复制代码
35_avatar_middle
最佳答案
0 
在线会员 发表于 2020-10-8 22:52:28 | 显示全部楼层
有什么不懂应该贴出来给大家看看,一般人没有你的书。
08_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-10-9 09:55:21 | 显示全部楼层
人走茶不凉 发表于 2020-10-8 22:52
有什么不懂应该贴出来给大家看看,一般人没有你的书。

好哦好哦,题目是:
char* get_same_string(char* p1, char* p2)
{
    //
}
get_same_string 函数的作用是从参数p1和p2中找出相同的部分,例如,p1的内容是:"aabbcc",p2的内容是:"kkbcyy",他们相同的子串就是 "bc"
08_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-10-10 14:29:06 | 显示全部楼层
tony666 发表于 2020-10-9 16:59
首先我觉得这个问题就不太严谨,(只是用来练习new 、delete的 似乎也不需要很严谨)

以下代码 ...

谢谢大佬实用C++零基础入门课程课后习题答案
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-29 23:52

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表