滴水逆向联盟
标题: 基于visual Studio2013解决面试题之0403串联字符串 [打印本页]
作者: 大灰狼 时间: 2014-7-29 08:48
标题: 基于visual Studio2013解决面试题之0403串联字符串
本帖最后由 大灰狼 于 2014-7-29 08:51 编辑
题目
解决代码及点评
- <pre code_snippet_id="112585" snippet_file_name="blog_20131215_1_1819517" class="cpp" name="code"><pre code_snippet_id="112585" snippet_file_name="blog_20131215_1_1819517" class="cpp" name="code"><pre code_snippet_id="112585" snippet_file_name="blog_20131215_1_1819517" class="cpp" name="code"><pre code_snippet_id="112585" snippet_file_name="blog_20131215_1_1819517" name="code" class="cpp">/*
-
- 有 n个长为 m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,
- 问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。
-
- */
-
- #include <iostream>
- using namespace std;
-
- int maxlengh = 0;
-
- void go(char *a[20], char **a2, int n)
- {
- // 遍历13个字符串
- for (int i = 0; i < 13; i++)
- {
- int flag = 0;
- // 判断a是不是在a2里,如果是flag = 1
- for (int j = 0; j < n; j++)
- {
- if (a == a2[j])
- {
- flag = 1;
- }
- }
- if (flag == 1) // 如果是在a2里,那么就看下一个字符串
- {
- continue;
- }
-
- if (n == 0) // n == 0 表示a2里还没有字符串
- {
- a2[n] = a; // 既然没有,就直接将a保存吧
-
- n++; // 保存完a2里就多了一个元素,要记录
- if (n > maxlengh) // 如果n>maxlengh,那么重新记录max
- {
- maxlengh = n;
- }
- go(a, a2, n); // 递归调用本函数
- n--;
- }
- // 如果n不是0,那么判断a是不是符合条件
- else if (a2[n - 1][1] == a[0] && a2[n - 1][2] == a[1] && a2[n - 1][3] == a[2])
- {
- a2[n] = a; // 如果符合条件,就把它记录到a2
-
- n++;
- // 一样的重新记录maxlength
- if (n > maxlengh)
- {
- maxlengh = n;
- }
- // 递归继续
- go(a, a2, n);
- n--;
- }
-
- }
- }
-
- /* 测试主函数 */
- int main()
- {
- char *a[20] = { "abcd", "bcde",
- "cdea", "deab", "eaba",
- "abab", "deac", "cdei",
- "bcdf", "cdfi", "dfic",
- "cdfk", "bcdg" };
- char *a2[20];
- go(a, a2, 0);
- cout << maxlengh;
- system("pause");
- return 0;
- }
-
- </pre><br><br></pre></pre></pre>
代码下载及其运行代码下载地址:http://download.csdn.net/detail/yincheng01/6704519
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果
欢迎光临 滴水逆向联盟 (http://dtdebug.com/) |
Powered by Discuz! X3.2 |