前端 9.16腾讯-2019校园招聘(正式卷)编程题题解(js)
第一题
和谐的数字
牛牛很喜欢研究数字。一天,他发明了一种数字,叫做“和谐的数字”。
和谐的数字定义如下:
定义S(n)为数字n各位数字之和,如果S(n)能够整除n,那么就称n为一个“和谐的数字”。
现在给出数字n,请你判断这是否是一个“和谐的数字”。 输入描述:
输入的第一行包括一个正整数t(1 <= t <= 20), 表示情况数
接下来t行,每行一个正整数n(1 <= n <= 109)
输出描述:
对于每个正整数n, 如果n是和谐的数字,输出"Yes",否则输出"No"。 示例1
输入
7
34
66
72
6
32
33
86 输出
No
No
Yes
Yes
No
No
No
题解
var nn = parseInt(readline());
for(let i=0;i<nn;i++){
var n = parseInt(readline());
if(f(n))
print('Yes');
else
print('No');
}
function f(n) {
var tag = n;
var he = 0;
var p = 10;
do{
var s = parseInt(tag/p);
var y = tag%p;
he += y;
tag = s;
}while(s);
//console.log(he);
if(n%he==0)
return true;
else
return false;
}
第一题没啥好讲的
第二题
巧克力
小Q喜欢吃甜食,有一天他拿到了一个巧克力条,这个巧克力条由许多个排在一行的巧克力球组成,有些球上有坚果,有些球上没有坚果。
小Q想把这个巧克力条给掰成很多块(每块包含至少一个巧克力球),每块的大小可以不一样,但是每块上有且只有一个坚果。
小Q想知道有多少种方式可以得到满足上述条件的若干巧克力块。如果一种方式在某两个相邻的巧克力球之间掰开但是另一种方式没有,那么这两种方式就是不同的。
如果巧克力只包含一个坚果,那么显然只有一种方式,即不掰。 输入描述:
两行,第一行一个数字N(1 <= N <= 100),表示巧克力球的个数;
第二行N个整数,每两个整数之间一个空格隔开。每个整数为0或者1,1表示这个巧克力球有坚果,0表示没有。 输出描述:
一个整数,表示方案数。 示例1
输入
4
1 0 1 1 输出
2
题解
var nn = parseInt(readline());
var q = readline().split(' ');
var n=1;
var x;
var y;
for(let i=0;i<nn;i++){
x = q.indexOf('1',i);
y = q.indexOf('1',x+1);
if(y==-1)
break;
n *= y-x;
i=x;
}
print(n);
解析:0010010001001000 可以看成10010001001。再然后 100 1000 100 1 。3*4*3 。 1和它后面的0可以看成一组,表示这一组有多少种情况,然后每一小组的情况累乘就是总种数
第三题
能源石
有一天,小Q找到了一座矿山,我们可以把这座矿山抽象地看成一个字符串 S 。
其中的每个矿石都可以看成一个字符,其中当一些矿石遵循一种特殊的元素排列时(用字符串 P 表示),它就能构成一块能源石。
同时,相邻的两块能源石能够融合成一块更大的能源石,融合时它们前缀和后缀相同的部分可能会重叠在一起。
比如:标准的能源石排列为aba,那么两块标准能源石的融合结果就可能为 {abaaba, ababa, aba}。一块能源石的能量等于它长度的平方。
现在小Q希望你告诉他最多可以获得多少能量。
输入描述:
输入的第一行为字符串S,第二行为字符串P。|S|, |P| <= 106
输出描述:
能够获得的能量总和 示例1
输入
xyabababcba
ab 输出
36 示例2
输入
aaa
aa 输出
9
题解
var s = readline();
var a = readline();
var n = 0;
var t = 0;
var slen = s.length;
var alen = a.length;
var x = 0;
for(let i=0;i<slen+1;i++){
let ss = s.slice(i,i+alen);
if(ss==a){
t++;
x = alen-1;
}else{
if(x>0) {
x--;
t++;
}else{
n += t*t;
t = 0;
}
}
}
print(n);
解析:就是挨着匹配,第一次成功开始计算长度t,然后i++,如果下一次匹配失败但是还没脱离之前匹配成功的字段,则t继续加加,匹配失败记录x--,如果中间匹配成功则重置x=alen-1,如果x=0,则说明本次匹配失败,记录这一段的能量,然后重置长度t=0,然后继续匹配,有个小细节,匹配长度是slen+1,多匹配一次使得最后一个肯定失败,避免最后一段没有记录能量
前端 9.16腾讯-2019校园招聘(正式卷)编程题题解(js)的更多相关文章
- 腾讯2020校园招聘-后台&综合-第一次笔试 题解
对数据结构和算法感兴趣的可以关注一下https://github.com/MCQ1999/Datastructure_Algorithm_Solutions,分享算法题的解题思路和代码~ 1.压缩算法 ...
- 京东2019春招Java工程师编程题题解
生成回文串 题目描述 对于一个字符串,从前开始读和从后开始读是一样的,我们就称这个字符串是回文串. 例如"ABCBA","AA","A"是回 ...
- 牛客腾讯2020校园招聘-后台&综合-第一次笔试
第一题 Q: 小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩,对于字符串中连续的m个相同字符串S将会压缩为m|S,例如字符串 ...
- 2019山东ACM省赛L题题解(FLOYD传递闭包的变形)
本题地址 https://cn.vjudge.net/contest/302014#problem/L Median Time Limit: 1 Second Memory Limit: 6 ...
- 2018春季校园招聘笔经面经合集:Java开发岗
2018春季校园招聘笔经面经合集:Java开发岗 以下为精选面经: 美团外卖配送部后台开发面经 nowcoder.com/discuss/76 春招总结,干货满满 nowcoder.com/discu ...
- 我是怎么和SAP结缘的 - Jerry的SAP校园招聘之路
2006年9月,结束了一年的北京中科院实习后,我回到了电子科技大学,此时已经是研三上学期了.有着"金九银十"之称的秋季校园招聘正式开始了. 准备好了简历后,Jerry也加入了浩浩荡 ...
- 校园招聘 - 比較easy的面试题
又到校园招聘的季节了, 自从和一些同事出版了<编程之美>一书之后, 我常常收到一些关于面试, 编程, 和"题库"的询问. 事实上我自己对算法没有什么研究, 有些问题都 ...
- google2013校园招聘笔试题(全国)
google2013校园招聘笔试题 1. 单项选择题1.1如果把传输速率定义为单位时间内传送的信息量(以字节计算)多少.关于一下几种典型的数据传输速率:1.使用USB2.0闪存盘,往USB闪存盘上拷贝 ...
- Microsoft 2013校园招聘笔试题及解答
Microsoft 2013校园招聘笔试题及解答 题目是自己做的,求讨论.吐槽.拍砖 1. Which of the following callingconvension(s) suppo ...
随机推荐
- UI 自定义布局
今天继续学习UI布局的布局管理器,昨天学习并练习使用了线性布局,相对布局和帧布局,今天学习表格布局,网格布局以及嵌套布局,相对于前三种布局,后三种布局比较复杂一些. 1.表格布局 TableLayou ...
- CRC碰撞
循环冗余效验(Cyclic Redundancy Check, CRC) 是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误. ...
- Python | 面向对象中的名词总结
一.变量名称 (最前的序号表示将来用到的频繁程度) 5 全局变量: 1. 文件中出现的变量,不归属于函数及类:2.在函数用用global声明的变量 2 局部变量: 1.类的方法中没有self.,只能在 ...
- Python爬取微博热搜以及链接
基本操作,不再详述 直接贴源码(根据当前时间创建文件): import requests from bs4 import BeautifulSoup import time def input_to_ ...
- [lua]紫猫lua教程-命令宝典-L1-01-09. string字符串函数库
L1[string]01. ASCII码互转 小知识:字符串处理的几个共同的几点 1.字符串处理函数 字符串索引可以为负数 表示从字符串末尾开始算起 所有字符串处理函数的 字符串索引参数都使用 2.所 ...
- Iris项目结构
- Codeforces Global Round 3:B. Born This Way
Born This Way原文链接:[传送门] 题目大意:潇洒哥想乘坐飞机从A地到达C地,但是没有直达的航班,在A地和B地之间有一个可以中转的航班B,潇洒哥想早点到达C地(有航班就坐),但是很不幸他得 ...
- 概率dp poj 3071
题目首先给出一个n,表示比赛一共进行n轮,那么队伍就有2^n只队伍输入一个2^n*2^n的矩阵,p[i][j]代表队伍i打败队伍j的概率dp[i][j]代表第i轮比赛的时候,队伍j赢的概率首先初始化时 ...
- python+tkinter+动画图片+爬虫(查询天气)的GUI图形界面设计
1.完整代码: import time import urllib.request #发送网络请求,获取数据 import gzip #压缩和解压缩模块 import json #解析获得的数据 fr ...
- BK-信息查找、摘取
先了解下压缩文件中的内容: 实现功能: 1.根据"e1.xlsx"表中的dealerName.bu(可能没有).时间,匹配"待挖取信息表.xlsx"中对应的相关 ...