字母移位-c语言解决
有一个由小写字母组成的字符串 s,和一个长度相同的整数数组 shifts。
我们将字母表中的下一个字母称为原字母的 移位 shift() (由于字母表是环绕的, ‘z’ 将会变成 ‘a’)。
例如,shift('a') = 'b', shift('t') = 'u', 以及 shift('z') = 'a'。
对于每个 shifts[i] = x , 我们会将 s 中的前 i + 1 个字母移位 x 次。
返回 将所有这些移位都应用到 s 后最终得到的字符串 。

这个题目做的比较好,击败了百分之百得用户,在运行时间上

下面给出题解代码:
char * shiftingLetters(char * s, int* shifts, int shiftsSize){
int i=0,j;
for(j=shiftsSize-2;j>=0;j--){
shifts[j]=shifts[j]+shifts[j+1]%26;
}
for(j=0;j<shiftsSize;j++){
if(s[j]+shifts[j]%26>122){
s[j]=97+s[j]+shifts[j]%26-123;
}
else s[j]=s[j]+shifts[j]%26;
}
return s;
}

1830

被折叠的 条评论
为什么被折叠?



