竞赛
考级
点赞的GESP一遍过
话不多说,直接上代码 只有26个英文字母,所以直接26个分支,学过周期问题的朋友应该知道分支的原理的
题目描述 有一个由26个大写英文字母组成的字符串:ABCDEFGHIJKLMNOPQRSTUVWXYZ 现在给你一个整数n,你需要将这个字符串循环左移n位后输出。 循环左移是什么意思? 就像把一队小朋友排队,最前面的小朋友移到队伍最后面,其他小朋友都往前移动一位。例如: * 原始队伍:A B C D E F ... Z * 左移1位:B C D E F ... Z A * 左移2位:C D E F ... Z A B 解题思路 字母表只有26个字母,所以: 1. 左移26位就回到原样(相当于没移) 2. 左移27位和左移1位结果一样 所以我们先让n除以26取余数,这样n就会变成0~25之间的数。 然后: 1. 把字母表从第n个字母开始到最后的字母取出来(后面部分) 2. 再把字母表开头的n个字母取出来(前面部分) 3. 把这两部分拼接在一起 代码 如果题解对你有帮助的话,不妨留下你的点赞吧
1.int转char 2.打表
求 ----------------------------------------------------------.|.
话不多说,上代码
题目解析 * 输入输出:输入一个正整数 nnn(1≤n≤1001 \le n \le 1001≤n≤100)表示偏移量。输出一行字符串,表示将标准大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 每个字母向后偏移 nnn 位后的结果(循环移位,即 Z 偏移后接 A)。 * 数据范围:1≤n≤1001 \le n \le 1001≤n≤100,偏移量可能大于 26,需要取模处理。 * 复杂度要求:仅需处理 26 个字母,时间复杂度 O(26)O(26)O(26),即 O(1)O(1)O(1)。 * 算法知识点:模运算、ASCII码转换、循环移位 思路解析 1. 建立映射关系:将字母 A 到 Z 映射为数字 000 到 252525。对于第 iii 个字母(从 0 开始计数),偏移后的新位置为 (i+n) mod 26(i + n) \bmod 26(i+n)mod26。 2. 处理循环特性:由于字母表是首尾相接的环,使用取模运算 % 26 自动处理越界情况。例如 Z(对应 25)偏移 3 位:(25+3)%26=2(25 + 3) \% 26 = 2(25+3)%26=2,对应 C。 3. 转换回字符:将计算得到的数字(0-25)加上 'A' 的 ASCII 码值,转换回对应的大写字母并输出。 完整代码
提交答案之后,这里将显示提交结果~