刷题记录-牛客-华为机试[11-20]

刷题1年前 (2023)更新 Gang
3.3K 0 0

华为机试 [11-20]

HJ11 数字颠倒

描述
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001

输入描述
输入一个int整数

输出描述
将这个整数以字符串的形式逆序输出

刷题记录-牛客-华为机试[11-20]

HJ12 字符串反转

描述
接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)

输入描述
输入一行,为一个只包含小写字母的字符串。

输出描述
输出该字符串反转后的字符串。

刷题记录-牛客-华为机试[11-20]

HJ13 句子逆序

描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符

输入描述
输入一个英文语句,每个单词用空格隔开。保证输入只包含空格和字母。

输出描述
得到逆序的句子

刷题记录-牛客-华为机试[11-20]

HJ14 字符串排序

描述
给定 n 个字符串,请对 n 个字符串按照字典序排列。

1≤len≤100

输入描述
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。

输出描述
数据输出n行,输出结果为按照字典序排列的字符串。

刷题记录-牛客-华为机试[11-20]

HJ15 求int型正整数在内存中存储时1的个数

描述
输入一个 int 型的正整数,计算出该 int 型数据在内存中存储时 1 的个数。

数据范围
保证在 32 位整型数字范围内

输入描述
输入一个整数(int类型)

输出描述
这个数转换成2进制后,输出1的个数

刷题记录-牛客-华为机试[11-20]

HJ16 购物单

描述
王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:

主件附件
电脑打印机,扫描仪
书柜图书
书桌台灯,文具
工作椅

如果要买归类为附件的物品,必须先买该附件所属的主件,且每件物品只能购买一次。
每个主件可以有 0 个、 1 个或 2 个附件。附件不再有从属于自己的附件。

王强查到了每件物品的价格(都是 10 元的整数倍),而他只有 N 元的预算。除此之外,他给每件物品规定了一个重要度,用整数 1 ~ 5 表示。他希望在花费不超过 N 元的前提下,使自己的满意度达到最大。

满意度是指所购买的每件物品的价格与重要度的乘积的总和,假设设第i件物品的价格为v[i],重要度为w[i],共选中了k件物品
请你帮助王强计算可获得的最大的满意度。

数据范围
保证在 32 位整型数字范围内

输入描述
输入的第 1 行,为两个正整数N,m,用一个空格隔开:
(其中 N ( N<32000 )表示总钱数, m (m <60 )为可购买的物品的个数。)

从第 2 行到第 m+1 行,第 j 行给出了编号为 j-1 的物品的基本数据,每行有 3 个非负整数 v p q

(其中 v 表示该物品的价格( v<10000 ), p 表示该物品的重要度( 1 ~ 5 ), q 表示该物品是主件还是附件。如果 q=0 ,表示该物品为主件,如果 q>0 ,表示该物品为附件, q 是所属主件的编号)

输出描述
输出一个正整数,为张强可以获得的最大的满意度。

输入: 1000 5
800 2 0
400 5 1
300 5 1
400 3 0
500 2 0

输出: 2200

输入: 50 5
20 3 5
20 3 5
10 3 0
10 2 0
10 1 0

输出: 130
说明:
由第1行可知总钱数N为50以及希望购买的物品个数m为5;
第2和第3行的q为5,说明它们都是编号为5的物品的附件;
第4~6行的q都为0,说明它们都是主件,它们的编号依次为3~5;
所以物品的价格与重要度乘积的总和的最大值为101+203+20*3=130

刷题记录-牛客-华为机试[11-20]

HJ17 坐标移动

描述
开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。

输入:

合法坐标为A(或者D或者W或者S) + 数字(两位以内)

坐标之间以;分隔。

非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。

下面是一个简单的例子 如:

A10;S20;W10;D30;X;A1A;B10A11;;A10;

处理过程:

起点(0,0)

  • A10 = (-10,0)
  • S20 = (-10,-20)
  • W10 = (-10,-10)
  • D30 = (20,-10)
  • x = 无效
  • A1A = 无效
  • B10A11 = 无效
  • 一个空 不影响
  • A10 = (10,-10)

结果 (10, -10)

数据范围
保证在 32 位整型数字范围内

输入描述
一行字符串

输出描述
最终坐标,以逗号分隔

输入: A10;S20;W10;D30;X;A1A;B10A11;;A10;
输出: 10,-10

刷题记录-牛客-华为机试[11-20]

HJ18

描述

数据范围

输入描述

输出描述

HJ19 简单错误记录

描述

数据范围

输入描述

输出描述

刷题记录-牛客-华为机试[11-20]

HJ20

描述

密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)

数据范围

数据范围:输入的字符串长度满足 1 ≤ n ≤ 100

输入描述
一组字符串。

输出描述
如果符合要求输出:OK,否则输出NG

示例
输入:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000

输出
OK
NG
NG
OK

刷题记录-牛客-华为机试[11-20]
© 版权声明

相关文章

暂无评论

暂无评论...