注:本系列题目全是按照通过率降序来排列的,基本保证题目难度递增。

6、

题目名称:Fibonacci数列

来源:网易

题目描述

Fibonacci数列是这样定义的:
F[0] = 0
F[1] = 1
for each i ≥ 2: F[i] = F[i-1] + F[i-2]
因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。

输入描述:

输入为一个正整数N(1 ≤ N ≤ 1,000,000)

输出描述:

输出一个最小的步数变为Fibonacci数"

示例1

输入

15

输出

2

分析:我们不断生成斐波那契数列,生成到比输入大了以后,比较这一个数和前一个数就好。

def ojbk(n):x=0y=1while 1:if y>n: return min(y-n, n-x)x,y=y,x+y
print(ojbk(input()))

7、

题目名称:数字反转

来源:网易

题目描述

对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?

输入描述:

输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。

输出描述:

输出rev(rev(x) + rev(y))的值

示例1

输入

123 100

输出

223

分析:直接按题意写出来函数,模拟即可。

python字符串法:

L=(input("").split(' '))
a=L[0]
b=L[1]
def rev(x):q=int(x[::-1])return q
c=str(rev(a)+rev(b))
print(str(rev(c)))

简化:

a = input().split()
print(str(int(a[0][::-1]) + int(a[1][::-1]))[::-1].lstrip("0"))

c++实现高效逆置:

#include<iostream>
using namespace std;
int rev(int m)
{int t=0;while(m>0){t=t*10+m%10;m=m/10;}return t;
}int main()
{
int x,y;while(cin>>x>>y){cout<<rev(rev(x) + rev(y))<<endl;}return 0;
}

8、

题目名称:下厨房

来源:网易

题目描述

牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。

输入描述:

每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。

输出描述:

输出一行一个数字表示完成所有料理需要多少种不同的材料。

示例1

输入

BUTTER FLOUR
HONEY FLOUR EGG

输出

4

分析:就是没有出现过的就放到一个容器里,高效查找。

python:

ll=[]//存东西
while 1:try:l=(input().split())for i in range(len(l)):if l[i] in ll://没有就放进去continueelse:ll.append(l[i])except:print(len(ll))break

c++ set:

#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {string str;set<string> datas;while (cin >> str) {datas.insert(str);}cout << datas.size() << endl;return 0;
}

9、

题目名称:n个数里出现次数大于等于n/2的数

来源:好未来

题目描述

输入n个整数,输出出现次数大于等于数组长度一半的数。

输入描述:

每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。

输出描述:

输出出现次数大于等于n/2的数。

示例1

输入

3 9 3 2 5 6 7 3 2 3 3 3

输出

3

分析:你就算暴力也是可以的

l=(input().split())
for i in l://遍历每一个数a=0for j in l://查找if i==j:a+=1if a>len(l)/2-1:print(i)break

当然,动态规划思想会很高效,我这里放一个链接,第一题就是

https://blog.csdn.net/hebtu666/article/details/81390118感兴趣的看一看

10、

题目名称:小易喜欢的单词

来源:网易

题目描述

小易喜欢的单词具有以下特性:
1.单词每个字母都是大写字母
2.单词没有连续相等的字母
3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续。
例如:
小易不喜欢"ABBA",因为这里有两个连续的'B'
小易不喜欢"THETXH",因为这里包含子序列"THTH"
小易不喜欢"ABACADA",因为这里包含子序列"AAAA"
小易喜欢"A","ABA"和"ABCBA"这些单词
给你一个单词,你要回答小易是否会喜欢这个单词(只要不是不喜欢,就是喜欢)。

输入描述:

输入为一个字符串,都由大写字母组成,长度小于100

输出描述:

如果小易喜欢输出"Likes",不喜欢输出"Dislikes"

示例1

输入

AAA

输出

Dislikes

分析:题意i容易理解,操作挺麻烦的,根据题意实现功能就好。

看代码注释

a=input()
q=0
v=0
for i in a://遍历判断条件if i.islower():print("Dislikes")q=1//后面就不会执行了break
for j in range(len(a)-1)://遍历判断条件if q==1:breakelif a[j]==a[j+1]:print("Dislikes")q=1//后面就不会执行了
for z in range(len(a)-3)://遍历判断条件if q==1:breakfor x in range(1,len(a)):if a[z]==a[x]://找到相同的for g in range(z+1,x)://相同的之间for h in range(x+1,len(a))://之后if a[h]==a[g]://相同,也就是ABAB型print("Dislikes")v=1breakif v==1:break
if q==0://执行到这里就是likeprint("Likes")

找来的c++,不是我写的:

#include "stdio.h"
#include "string.h"int FindDislike(char *s,int length);
int FindForward(char *s,int x,int y,int length);int main(){char s[101];int like=1;scanf("%s",s);int len=strlen(s);   //先完成有没有连续的数for(int i=0;i<len-1;i++){if(len<2){like=1;}else if(s[i]==s[i+1]){like=0;break;}}///if(like==1 && len>1)like=FindDislike(s,len);if(like==1)printf("Likes",s);elseprintf("Dislikes");return 0;
}int FindDislike(char *s,int length){int like=1;for(int i=0;i<length;i++){for(int j=1;j<length;j++){if(s[i]==s[j]) {like=FindForward(s,i,j,length);if(like==0){ return 0;}}      }}return 1;
}int FindForward(char *s,int x,int y,int length){if(y==length-1)return 1;for(int i=x+1;i<y;i++){for(int j=y+1;j<length;j++){if(s[i]==s[j])return 0;}}return 1;
}

17校招真题题集(2)6-10相关推荐

  1. 17校招真题题集(3)11-15

    注:本系列题目全是按照通过率降序来排列的,基本保证题目难度递增. 11. 题目名称:买苹果 来源:网易 题目描述 小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装 ...

  2. 200 道算法面试题集锦!Python 实现,含华为、BAT 等校招真题!

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法. ...

  3. 拼多多2018年校招真题

    拼多多2018年校招真题 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出 ...

  4. 牛客网 2018校招真题 美团点评 K的倍数

    Description 牛客网 2018校招真题 K的倍数 Solving Ideas sum[i + 1]: 表示序列p[0]...p[i]的和 从长度最大的子串开始判断,当剩余需要判断子串长度不可 ...

  5. 牛客网 2018校招真题 摩拜 排序次数

    Description 牛客网 2018校招真题 排序次数 Solving Ideas 将数组a的元素拷贝到数组b 对数组b进行排序 对比数组b,统计数组a中已排序的元素个数 如:a = [2, 11 ...

  6. 牛客网 2018校招真题 滴滴出行 寻找丑数

    Description 牛客网 2018校招真题 寻找丑数 Solving Ideas 参考<剑指offer>丑数 Time complexity : O(n)O(n)O(n) Space ...

  7. 牛客网 2018校招真题 爱奇艺 最后一位

    Description 牛客网 2018校招真题 最后一位 Solving Ideas 二分查找 Solution import java.io.BufferedReader; import java ...

  8. 备战网络工程师认证考试:历年真题合集

    备战网络工程师认证考试:历年真题合集 网络工程师是通过学习和训练,掌握网络技术的理论知识和操作技能的网络技术人员.网络工程师能够从事计算机信息系统的设计.建设.运行和维护工作.参加全国计算机等级考试之 ...

  9. 牛客网 2018校招真题 京东 回文

    Description 牛客网 2018校招真题 回文 Solving Ideas 计算以str[str.length() - 1]为结尾的最大的回文长度,从而判断最少需要追加多少个字母才能使整个串成 ...

最新文章

  1. 《阿里巴巴Java开发规约》插件全球首发!
  2. 并发和在线用户数的思考
  3. aix cpu java_AIX cpu理解
  4. tomcat8 安装|解决启动慢|进入管理|host-manager 403错误
  5. 鸿蒙科技与文化,数字阅读 | “华为鸿蒙”:当现代科技遇到古典文化
  6. LInux:shell 命令:字符串截取
  7. 密码学 区块链中的应用专栏 【简介】
  8. python snmp采集交换机信息_网管交换机与非网管交换机的利弊介绍
  9. Bootstrap 工具提示插件
  10. docker安装DM8
  11. IM即时通讯实现的原理
  12. android 5.1 改mac地址,mac地址可以随便改吗
  13. 小学认识计算机说课ppt,“认识计算机”说课稿.ppt
  14. mysql 字段扩容_关于数据库扩容与缩容
  15. FID指标复现踩坑避坑 文本生成图像FID定量实验全流程复现(Fréchet Inception Distance )定量评价实验踩坑避坑流程
  16. 手把手带你调参Yolo v5 (v6.2)(推理)
  17. 【题解】NOIP-2016 天天爱跑步
  18. sip测试工具--Sipp的编译
  19. Java 并发之 AQS 详解(上)
  20. 国产2.4G芯片的简单应用

热门文章

  1. asterisk1.8 账号信息mysql存储(动态)
  2. 如何在asterisk中限制呼叫路数?
  3. VMWare网络设置的3中方式
  4. cookie 百科_cookie是什么
  5. php 时间错误,PHP xdebug调试trace记录时间错误
  6. axure 链接html文件,通过WuliHub免费托管原型Axure HTML文件
  7. linux怎么设置tomcat自动启动,linux添加tomcat服务并设置开机启动
  8. 【转】matlab函数编译成dll供Cpp调用的方法
  9. 【转】对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
  10. REVERSE-PRACTICE-BUUCTF-26