腾讯云智笔试/5.12
题型:选择+算法
算法1:输入n、m、p、q,n为一颗树上的叶子数,m为每月掉落的叶子数,p为大风期开始的月数,q为大风期持续的月数,大风期期间叶子掉落数为每月2*m,输出叶子全部掉落需要多少月。
思路:简单模拟即可,注意大风期每12个月都存在一次,不要认为大风期只存在一次,后面全部都是非大风期。
算法2:输入一个只有小写字母的字符串s,需要对s中的非元音字母做三次变换,输出变换后的s*比变换前的s长多少。
思路:题目看似很长,三次变换过程也很复杂,但实际上变换过程就是非元音字母由1个字母变成3个字母,直接输出非元音字母的数量*2就是答案。
算法3:输入一个仅有1~9组成的字符串s,在s中可以插入任意的“+”号构成合法的等式,求各种组合中等式结果为质数的个数。
思路:回溯模拟所有的组合即可,由于s的长度可以为15,计算等式结果需要用long接收;暴力解不能得满分,需要对质数的判断优化,只遍历判断到等式结果的平方根即可ac(或者用6k±1法速度更快)。
#腾讯云智#