字母转盘(turntable)
题目描述
DAMON THRONE 的每日一练系统会生成一个由小写字母组成的口令。
现在给定一个长度为 n 的小写字母串 s,以及一个整数 k。系统会按照下面的规则对字符串进行变换:
- 对于第 1,3,5,… 个字符,也就是奇数位置字符,将它在字母表中向后移动 k 位;
- 对于第 2,4,6,… 个字符,也就是偶数位置字符,将它在字母表中向前移动 k 位。
字母表是循环的:
- z 向后移动 1 位会变成 a;
- a 向前移动 1 位会变成 z。
请你输出变换后的字符串,并统计有多少个位置上的字符发生了变化。
输入格式
第一行包含两个整数 n,k,表示字符串长度和移动位数。
第二行包含一个长度为 n 的字符串 s,字符串只包含小写英文字母。
输出格式
输出两行。
第一行输出变换后的字符串。
第二行输出一个整数,表示有多少个位置上的字符发生了变化。
输入输出样例 #1
输入 #1
5 2
abcde
输出 #1
czebg
5
样例解释 #1
原字符串为:abcde
第 1,3,5 个字符向后移动 2 位:
a→c,c→e,e→g
第 2,4 个字符向前移动 2 位:
b→z,d→b
所以变换后的字符串为:czebg
一共有 5 个位置上的字符发生了变化。
输入输出样例 #2
输入 #2
6 26
damond
输出 #2
damond
0
样例解释 #2
因为字母表共有 26 个小写字母,移动 26 位后每个字符都会回到原来的位置。
所以变换后的字符串仍然是:damond
没有任何位置上的字符发生变化,答案为 0。
数据范围与约定
对于所有测试数据,保证:
1≤n≤105,0≤k≤109
字符串 s 只包含小写英文字母。
| 测试点 |
分值 |
n |
k |
特殊性质 |
| 1∼2 |
20 |
≤20 |
≤25 |
无 |
| 3∼4 |
≤104 |
| 5∼6 |
≤105 |
=0 |
A |
| 7∼8 |
≤106 |
B |
| 9∼10 |
≤109 |
无 |
特殊性质 A:保证 k=0。
特殊性质 B:保证存在非负整数 t,使得 k=26t。