L1-050 倒数第N个字符串 (15分)

L1-050 倒数第N个字符串 (15分)

给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增。例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }。这个序列的倒数第27个字符串就是 zyz。对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串。

输入格式:

输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤10^5?? )。

输出格式:

在一行中输出对应序列倒数第 N 个字符串。题目保证这个字符串是存在的。

输入样例:

3 7417

输出样例:

pat

解决这个问题其实就看用什么样的眼光来看待这个,‘aaa‘ 可以看作是三个字符,但是这里若把每一位都当作像时间一样是小时分钟和秒一样的计数,这只是一个小时分钟和秒都是 26 进制的时间表达方式,27 秒就是 0:1:0 。那么再把每一位的 0-25 映射到 ‘z‘-‘a‘ 那么转换后输出就得到来想要的结果。
最开始的时候一直过不了,后来想明白了一件事,倒数第 1 个其实是第 0 个,所以呢先将 N 要减一。

L, N = map(int,input().split())
N -= 1

letters = [chr(i) for i in range(97, 123)][::-1]
out = ['z'] * L
index = -1
while N > 0:
    out[index] = letters[N % 26]
    N //= 26
    index -= 1

print(''.join(out))

原文地址:https://www.cnblogs.com/fnmain/p/12430975.html

时间: 2024-10-03 13:09:53

L1-050 倒数第N个字符串 (15分)的相关文章

团体程序设计天梯赛-练习集(六)(set容器、L1-033 出生年、L1-050 倒数第N个字符串 )

L1-050 倒数第N个字符串 (15分) https://pintia.cn/problem-sets/994805046380707840/problems/994805080346181632 1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <iostream> 5 #include <cmath> 6 using namespace std;

pta 天梯赛 L1-050 倒数第N个字符串 (15 分)

给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }.这个序列的倒数第27个字符串就是 zyz.对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串. 输入格式: 输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤10?5??). 输出格式: 在一行中

L1-050 倒数第N个字符串

给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }.这个序列的倒数第27个字符串就是 zyz.对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串. 输入格式: 输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤10?5??). 输出格式: 在一行中

习题2.5 两个有序链表序列的合并(15 分)&lt;有疑问?L1 L2 没办法变空&gt;

习题2.5 两个有序链表序列的合并(15 分) 本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列. 函数接口定义: List Merge( List L1, List L2 ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode L

倒数第N个字符串

给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时,序列为 { aaa, aab, aac, ..., aaz, aba, abb, ..., abz, ..., zzz }.这个序列的倒数第27个字符串就是 zyz.对于任意给定的 L,本题要求你给出对应序列倒数第 N 个字符串. 输入格式: 输入在一行中给出两个正整数 L(2 ≤ L ≤ 6)和 N(≤). 输出格式: 在一行中输出对应序列

新华三:字符串不分大小写去重

题目: 字符串去重,只有大小写的英文字母,英文字母去重时不分大小写,且第一个出现的为大写就输出大写,第一个出现的为小写就输出小写 Java:字符串不分大小写去重 1 import java.util.Arrays; 2 import java.util.Scanner; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 Scanner sc=new Scanner(System.in); 8 while(

B1016 部分A+B (15分)

B1016 部分A+B (15分) 输入格式: 输入在一行中依次给出 A.DA.B.DB,中间以空格分隔,其中 \(0<A,B<10^10\). 输出格式: 在一行中输出 PA+PB的值. 输入样例 1: 3862767 6 13530293 3 输出样例 1: 399 输入样例 2: 3862767 1 13530293 8 思路 关键是首先处理出,只含有DA的字符串. 然后将该字符串转化为整数相加. 使用c++的特性 c++11 数值类型和字符串的相互转换 - 农民伯伯-Coding -

PTA L1-033 出生年 (15 分) C

L1-033 出生年 (15 分) 以上是新浪微博中一奇葩贴:"我出生于1988年,直到25岁才遇到4个数字都不相同的年份."也就是说,直到2013年才达到"4个数字都不相同"的要求.本题请你根据要求,自动填充"我出生于y年,直到x岁才遇到n个数字都不相同的年份"这句话. 输入格式: 输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2.或3.或4.注意不足4位的年份要在前面补零,例如公元1年被认为是

pta 数据结构 习题2.4 递增的整数序列链表的插入(15 分)

习题2.4 递增的整数序列链表的插入(15 分) 本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性. 函数接口定义: List Insert( List L, ElementType X ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; type