校招真题练习027 小易的字典(网易)

小易的字典

题目描述
小易在学校中学习了关于字符串的理论, 于是他基于此完成了一个字典的项目。
小易的这个字典很奇特, 字典内的每个单词都包含n个‘a‘和m个‘z‘, 并且所有单词按照字典序排列。
小易现在希望你能帮他找出第k个单词是什么。

输入描述:
输入包括一行三个整数n, m, k(1 <= n, m <= 100, 1 <= k <= 109), 以空格分割。

输出描述:
输出第k个字典中的字符串,如果无解,输出-1。

 1 def Cnm(a, b):
 2     ans =1
 3     for i in range(a+1, a + b +1):
 4         ans *=i
 5     for i in range(1, b +1):
 6         ans //=i
 7     return ans
 8
 9 n, m, k =map(int, input().strip().split())
10 if Cnm(n, m) < k:
11     print(-1)
12 else:
13     ans =""
14     while n > 0 and m > 0:
15         temp =Cnm(n -1, m)
16         if temp <k:
17             k-=temp
18             ans +="z"
19             m -=1
20         else:
21             ans +="a"
22             n -=1
23     ans +="a"*n
24     ans +="z"*m
25     print(ans)

又是数学计算类的题目,算法思路是排列组合,但是不能穷举所有排列。

参考:https://www.nowcoder.com/profile/1424034/codeBookDetail?submissionId=31703838

原文地址:https://www.cnblogs.com/asenyang/p/11235652.html

时间: 2024-10-11 01:55:26

校招真题练习027 小易的字典(网易)的相关文章

[编程题] 独立的小易 网易2018

小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间.一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金.当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元.小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天. 输入描述: 输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割 输出描述: 输出一个整数, 表示小易

[编程题]饥饿的小易

小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7.因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次.贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000,000,014等).小易需要你帮忙计算最少需要使用多少次神秘力量就能吃到贝壳. 输入描述: 输入一个初始位置x_0,范围在1

校招真题练习023 俄罗斯方块(网易)

俄罗斯方块 题目描述小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块.因为它比较古老,所以规则和一般的俄罗斯方块不同.荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分.有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数. 输入描述:第一行两个数 n, m第二行 m 个数,c1, c2, ... , cm , ci 表示

校招真题练习030 丰收(网易)

丰收 题目描述又到了丰收的季节,恰逢小易去牛牛的果园里游玩.牛牛常说他对整个果园的每个地方都了如指掌,小易不太相信,所以他想考考牛牛.在果园里有N堆苹果,每堆苹果的数量为ai,小易希望知道从左往右数第x个苹果是属于哪一堆的.牛牛觉得这个问题太简单,所以希望你来替他回答. 输入描述:第一行一个数n(1 <= n <= 105).第二行n个数ai(1 <= ai <= 1000),表示从左往右数第i堆有多少苹果第三行一个数m(1 <= m <= 105),表示有m次询问.第

2016校招真题之小球的距离

1.题目描述 小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数) 给定四个整数A,B,C,D,请返回所求结果. 测试样例: 100,90,80,70 返回:1020 2.代码实现 1 package com.wcy.october; 2 3 /** 4 * 时间:2016年10月16日 题目:小球的距离 5 * 题目描述:小东和三个

2018 拼多多 校招真题 最大乘积

最大乘积 时间限制:1秒 空间限制:32768K 热度指数:8197 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE. 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 示例1 输入 3 4 1 2 输出 8 思路分析:看到这个题目,下意识想到用Arrays.sort()排一下序, 因为输入的整数可以是负

校招真题练习019 毕业旅行问题(头条)

毕业旅行问题 题目描述小明目前在做一份毕业旅行的规划.打算从北京出发,分别去若干个城市,然后再回到北京,每个城市之间均乘坐高铁,且每个城市只去一次.由于经费有限,希望能够通过合理的路线安排尽可能的省一些路上的花销.给定一组城市和每对城市之间的火车票的价钱,找到每个城市只访问一次并返回起点的最小车费花销. 输入描述:城市个数n(1<n≤20,包括北京)城市间的车票价钱 n行n列的矩阵 m[n][n] 输出描述:最小车费花销 s 牛客网上对此题的python语言判断似乎有问题,一直超时,之前做剑指O

RH124 考试真题讲解(小部分、不全)

考试时间2.5小时 请首先按以下要求配置考试系统: HostName server0.example.com ip add :172.25.0.11 netmask:/24 gateway:172.25.254.254 Name server 172.25.254.254 所有配置要求系统重启后仍然生效 [[email protected] Desktop]# hostnamectl set-hostname server0.example.com [[email protected] Desk

校招真题练习014 万万没想到之聪明的编辑(头条)

万万没想到之聪明的编辑 题目描述我叫王大锤,是一家出版社的编辑.我发现一个发现拼写错误的捷径: 1. 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello2. 两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello3. 上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,应该优先考虑修复AABB,结果为AABCC 请听题:请实现大锤的自动校对程序 输入