网易笔试编程题
来源:互联网 发布:python socket select 编辑:程序博客网 时间:2024/05/16 14:38
下厨房
题目描述
牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
输入描述:
每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。
输出描述:
输出一行一个数字表示完成所有料理需要多少种不同的材料。
示例1
输入
BUTTER FLOURHONEY FLOUR EGG
输出
4
#include<iostream>#include<set>#include<string>using namespace std;int main(){ string food; set<string> set; while(cin >> food){ set.insert(food); } cout << set.size() << endl; return 0;}数字翻转
题目描述
对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?
如果 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
#include<iostream>using namespace std;int rev(int m){ int temp = 0; while(m != 0){ temp = temp * 10 + m % 10; m /= 10; } return temp;}int main(){ int x, y; while(cin >> x >> y) cout << rev(rev(x) + rev(y)); return 0;}统计回文
题目描述
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。
例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:
* 在A的第一个字母之前: "baba" 不是回文
* 在第一个字母‘a’之后: "abba" 是回文
* 在字母‘b’之后: "abba" 是回文
* 在第二个字母'a'之后 "abab" 不是回文
所以满足条件的答案为2
例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:
* 在A的第一个字母之前: "baba" 不是回文
* 在第一个字母‘a’之后: "abba" 是回文
* 在字母‘b’之后: "abba" 是回文
* 在第二个字母'a'之后 "abab" 不是回文
所以满足条件的答案为2
输入描述:
每组输入数据共两行。第一行为字符串A第二行为字符串B字符串长度均小于100且只包含小写字母
输出描述:
输出一个数字,表示把字符串B插入字符串A之后构成一个回文串的方法数
示例1
输入
abab
输出
2
#include<iostream>#include<string>using namespace std;int huiwen(string str){ //定义回文函数 int len = str.length(); for(int i = 0; i < len; i++){ if(str[i] != str[len - 1]) return false; len -= 1; //len的值不断变化,往中间靠拢 } return true;}int main(){ string str1, str2, temp; while(cin >> str1 >> str2){ int count = 0; temp = str1; int len = str1.length() + 1; for(int i = 0; i < len; i++){ str1 = temp; //重要的一步,将str1还原 str1.insert(i, str2); //插入str2,判断新的字符串是否是回文 if(huiwen(str1)) count++; } cout << count <<endl; return 0; }}买苹果
题目描述
小易去附近的商店买苹果,奸诈的商贩使用了捆绑交易,只提供6个每袋和8个每袋的包装(包装不可拆分)。 可是小易现在只想购买恰好n个苹果,小易想购买尽量少的袋数方便携带。如果不能购买恰好n个苹果,小易将不会购买。
输入描述:
输入一个整数n,表示小易想购买n(1 ≤ n ≤ 100)个苹果
输出描述:
输出一个整数表示最少需要购买的袋数,如果不能买恰好n个苹果则输出-1
示例1
输入
20
输出
3
//因为要袋子足够少,则原则上尽可能多买8个一袋的苹果。
#include<iostream>using namespace std; int maxPackage(int n){ int count = 0; //袋子个数 int mul, remains; if(n % 2 != 0) //如果n不为偶数,直接返回-1 return -1; if(n % 8 == 0){ count = n / 8; return count; } else{ mul = n / 8; //8的倍数 remains = n % 8; count += mul; n = n % 8; while(mul >= 0){ if(n % 6 == 0){ count += n / 6; return count; } else{ //回溯 mul--; //8包装袋-1 count --; //袋子个数-1 n = n + 8; //剩余苹果数量+8 } } return -1; }}int main(){ int n; cin >> n; cout << maxPackage(n); return 0;}藏宝图
题目描述
牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。
输入描述:
每个输入包含一个测试用例。每个测试用例包含两行长度不超过 10 的不包含空格的可见 ASCII 字符串。
输出描述:
输出一行 “Yes” 或者 “No” 表示结果。
示例1
输入
x.nowcoder.comooo
输出
Yes
思路:判断测试序列与原序列有多少位是相同的,如果相同的长度等于测试序列的长度,则该序列为原序列的子序列
#include<iostream>#include<string>using namespace std;int main(){ string str; while(cin >> str){ string str1; cin >> str1; int a = 0, b = 0; while(a < str.length()){ if(str[a++] == str1[b]) b++; } if(b == str1.length()) cout << "Yes" << endl; else cout << "No" << endl; }}
阅读全文
0 0
- 网易笔试编程题
- 网易笔试编程题详解
- 网易笔试编程第二题
- 笔试编程题(网易)
- 网易笔试编程题1
- 网易笔试编程题2
- 网易笔试编程题-java版
- 网易实习生笔试编程题 二叉树
- 网易实习生笔试编程题 比较重量
- 网易笔试编程题-混合颜料
- 网易笔试编程题-幸运的袋子
- 网易笔试编程题-不要二
- 【网易2017内推笔试编程题】
- 【Python】 网易笔试编程题(集合)
- 网易内推笔试编程题2
- 网易编程笔试题(一):合唱团
- 分享java编程题(网易笔试)
- 网易笔试编程题(一)
- 利用Qt开发跨平台APP(二)(iOS)
- 解决Groovy复制文件的乱码
- 18.Redis Cluster
- netty案例
- windows下安装配置mycat
- 网易笔试编程题
- 每日积累(二一)--mysql 数据库优化
- 如何挖掘热门关键词
- 使用Redis做MyBatis的二级缓存
- 2018网易校招内推-疯狂队列
- PAT (Basic Level) Practise (中文) 1014. 福尔摩斯的约会 (20)
- Android 框架炼成 教你如何写组件间通信框架EventBus
- 技术文章 | 波司登全国超千家门店_销售状况如何实时监控?
- offsetTop 与 style.top 的差别