求问这个问题如何用c语言编程解决!因为递归方法时间复杂度太高,请用动态规划方法,谢谢!
4条回答 默认 最新
- threenewbee 2023-11-04 10:10关注
#include <stdio.h> int canconcat(char *s1, char *s2, char * s3) { int r1 = 0, r2 = 0; if (*s3 == 0 && (*s1 || *s2)) return 0; if (*s1 == 0 && *s2 == 0) return 1; if (*s1 != 0 && *s1 == *s3) { r1 = canconcat(s1 + 1, s2, s3 + 1); } if (*s2 != 0 && *s2 == *s3) { r2 = canconcat(s1, s2 + 1, s3 + 1); } if (*s1 == 0 && *s2 != 0) return r2; if (*s1 != 0 && *s2 == 0) return r1; return r1 || r2; } int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { char s1[201], s2[201], s3[402]; scanf("%s%s%s", s1, s2, s3); if (canconcat(s1, s2, s3)) printf("yes\n"); else printf("no\n"); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 模块化生产的路径规划哪种算法更合适?
- ¥15 如何在animate html5文档任意位置实现文本输入功能?
- ¥15 电机正反转电路设计中,mos管的关断问题,求原因。
- ¥15 关于#sql#的问题:怎么找出所有同时多张有效保单的车架号
- ¥15 KFC账号下单提示拒绝操作
- ¥20 HC32F460串口发送仅能接到一个数据
- ¥15 求解答一下是否可以修改一个软件运行时生成的文件内部内置的文件创建时间?
- ¥20 WIN10蓝屏问题!
- ¥15 Mac经常自动关机,再次打开后提示“电脑因出现问题而重新启动”
- ¥60 使用ovito软件怎么得到金属玻璃的自由体积