2021.03.31 网易互娱笔试
2021.03.31 网易互娱笔试
三道编程题,难度都不是很高,简单复述一下题目和解法。
第一题
买卖基金,已知基金会先涨M天,每天赚X元,再跌N天,每天亏Y元(0
第二题
某人写了一个处理字符串的程序,判断给定一个字符串,该字符串在这个程序中会历经多少个if
void function(char* str)
{int flag = 0;if(*str == '\0') {break;}if(flag){if(*str == 's'){flag = 0;}else if(*str == 'd'){flag = 0;}else if(*str >= '0' && *str <= '9'){//}else if(*str == '%'){flag = 0;}else {flag = 0;}}else{if(*str == '%'){flag = 1;}else{//}}++str;
}
大致就是这样的一个程序,可以考虑用空间换时间,毕竟每一个字符的if判断都是固定的,只是会根据flag有变化。
第三题
假设
A = "wo"
B = "goto school"
C = "A B"
D = "C THEN B"
当修改某一变量时会有多少个语句发生变化
比如:
A
B
C
D
THEN
输出:
3
3
2
1
1
解法:其实就是套着字符串皮的拓扑排序,将每个字符串转为图中的结点,但是不同的时需要找到出度为0的结点(不会对其他变量造成影响),删去该结点和所连的入边,对应结点出度-1,并更新关系矩阵,循环判断直到无结点即可,最终输出关系矩阵对应的行中1的数量即可。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
