2017.9.9网易校招笔试最后一道编程解答
来源:互联网 发布:fp系列编程手册 编辑:程序博客网 时间:2024/06/01 08:43
解答代码:
#include<iostream>#include<string>#include<algorithm>#include<vector>using namespace std;//判断是否是合法括号匹配序列bool panding(string ss, int n) { int count = 0; for (int i = 0; i<n; i++) { if (ss[i] == '(') { count++; } else if (ss[i] == ')') { count--; } if (count<0) return false; } if (count == 0) return true; else return false;}//计算两个串的最长公共字串长度int lcs_len(string s1, string s2) { int len1 = s1.size(), len2 = s2.size(); if (len1 == 0 || len2 == 0)return 0; //定义二维数组dp[i][j] 代表串1从0~i这段与串2从0~j这段的公共子串的最大值 //赋初值dp[0~len1][0]=0 dp[0][0~len2]=0 vector<vector<int>> dp(len1 + 1, vector<int>(len2 + 1, 0)); for (int i = 1; i <= len1; i++) { for (int j = 1; j <= len2; j++) { if (s1[i - 1] == s2[j - 1]) { //若相等则上层值+1 dp[i][j] = dp[i - 1][j - 1] + 1; } else { //若不相等则等于交错值中的最大值 dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); } } } return dp[len1][len2];}int main(){ string s; while (cin >> s) { string s2(s); int shuzu[20] = { 0 }; int k = 0; sort(s.begin(), s.end()); int i = 0; do { int lth =s.length(); if (panding(s, lth)) { shuzu[i]=lcs_len(s, s2); i++; k++; } } while (next_permutation(s.begin(), s.end()));//找出s的所有排列 sort(shuzu, shuzu + 20); int temp=0; for (int t = 0; t < 20; t++) { if (shuzu[t] == shuzu[18]) { temp++; } } cout << temp << endl; } system("pause"); return 0;}
阅读全文
1 0
- 2017.9.9网易校招笔试最后一道编程解答
- 2017年网易校招笔试编程题第二题
- 2017年网易校招笔试编程题第一题
- (网易2018校招笔试)[编程题] 魔法币
- (网易2018校招笔试)[编程题] 相反数
- (网易2018校招笔试)[编程题] 字符串碎片
- (网易2018校招笔试)[编程题]相反数
- (网易2018校招笔试)[编程题] 游历魔法王国
- (网易2018校招笔试)[编程题] 字符串碎片
- (网易2018校招笔试)[编程题] 魔法币
- (网易2018校招笔试)[编程题] 相反数
- (网易2018校招笔试)[编程题] 字符串碎片
- (网易2018校招笔试)[编程题] 游历魔法王国
- 网易校招笔试题
- 网易2017校招笔试
- 昨天去搜狗笔试,最后一道编程题
- 2012校招之网易笔试
- 2016网易校招笔试 霍夫曼树
- Armadillo矩阵库的使用(二)之API接口
- WebService
- java 集合框架
- struts2类型转换失败后的处理
- ProcessDefinition是干这个用的
- 2017.9.9网易校招笔试最后一道编程解答
- Css网页中属性的操作,缩放,旋转,图片倾斜
- mysql数据库的优化
- loadrunner Web_类函数之web_dump_cache()
- maven中央仓库地址
- LCA(倍增)
- Java面试题整理
- Buffer vs. Cache
- 解耦与分离 —— 面向切面编程(AOP)