力扣2381.字母移位II

力扣2381.字母移位II

  • 差分

    • 求每个位置字母移动几个位置
    • 最后在原字符串改动
  •   class Solution {
          const int mod = 26;
      public:
          string shiftingLetters(string s, vector<vector<int>>& shifts) {
              int n = s.size();
              vector<int> diff(n+1);
              function<void(int,int,int)> add = [&](int l,int r,int x)
              {
                  diff[l] = (diff[l] + x + mod) % mod;
                  diff[r+1] = (diff[r+1] - x + mod)% mod;
              };
              for(auto t:shifts)
                  add(t[0],t[1],t[2]*2 - 1);
      
              for(int i=0,sum=0;i<n;i++)
              {
                  sum = (sum + diff[i] + mod) % mod;
                  s[i] = ((s[i] - 'a') + sum + mod) % mod + 'a';
              }
              return s;
          }
      };
    

相关推荐

  1. 2381.字母移位II

    2024-07-13 20:58:03       21 阅读
  2. -2831

    2024-07-13 20:58:03       25 阅读
  3. -238

    2024-07-13 20:58:03       25 阅读
  4. 2831.找出最长等值子数组

    2024-07-13 20:58:03       27 阅读
  5. 2781.最长合法子字符串的长度

    2024-07-13 20:58:03       26 阅读
  6. 子集II90)

    2024-07-13 20:58:03       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 20:58:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 20:58:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 20:58:03       58 阅读
  4. Python语言-面向对象

    2024-07-13 20:58:03       69 阅读

热门阅读

  1. Transformer模型:WordEmbedding实现

    2024-07-13 20:58:03       16 阅读
  2. stm32高级定时器

    2024-07-13 20:58:03       16 阅读
  3. Jupyter Notebook 使用教程

    2024-07-13 20:58:03       21 阅读
  4. 基于SpringBoot就医管理系统设计与实现(测试项)

    2024-07-13 20:58:03       21 阅读
  5. C语言 求两个整数的最大公约数和最小公倍数

    2024-07-13 20:58:03       17 阅读
  6. 《我的编程学习之旅启程》

    2024-07-13 20:58:03       20 阅读
  7. Python基础-循环语句

    2024-07-13 20:58:03       19 阅读
  8. 深入理解C++ 中的可调⽤对象

    2024-07-13 20:58:03       18 阅读