字母移位-c语言解决

字母移位-c语言解决

有一个由小写字母组成的字符串 s,和一个长度相同的整数数组 shifts。

我们将字母表中的下一个字母称为原字母的 移位 shift() (由于字母表是环绕的, ‘z’ 将会变成 ‘a’)。

例如,shift('a') = 'b', shift('t') = 'u', 以及 shift('z') = 'a'。

对于每个 shifts[i] = x , 我们会将 s 中的前 i + 1 个字母移位 x 次。

返回 将所有这些移位都应用到 s 后最终得到的字符串 。
字母移位-c语言解决_第1张图片

这个题目做的比较好,击败了百分之百得用户,在运行时间上
字母移位-c语言解决_第2张图片
下面给出题解代码:

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;
}

你可能感兴趣的:(c++与c语言,力扣刷题,c语言,算法)