好未来-笔试-算法
1.一长数字切割,使得各部分3的倍数个数最多
如:12345,切为12,3,45,返回3
import sys def sp(x): cou, sum = 0, 0 for i in range(len(x)): sum += int(x[i]) if sum % 3 == 0: cou += 1 sum = 0 return cou for line in sys.stdin: x = line.strip() print(sp(x))
2.递增序列最大和
int increaseArraySum(int *a, int n){ int sum[n],max_sum=0; for(int i=0;i<n;i++){ sum[i]=a[i]; for(int j=0;j<i;j++){ if (a[j]<a[i]) sum[i]=max(sum[i],sum[j]+a[i]); } max_sum=max(max_sum,sum[i]); } return max_sum; }
3. p面骰子,其中n面奖励在掷一次,分数即骰子当面数字;求掷一次的分数期望
input:6 1 6面,1面奖励
1 1 1 1 1 1 6面,每面分数
output :1.2 1+1+1+1+1+1【+1奖励一次】 / 6 =1.2
4.实现字符串替换
Replc(src,src_str,dst_str,out)#好未来##笔试题目##题解#