作者:
dont 2025-01-05 11:29:192381. Shifting Letters II
## 思路
shift: [start, end] 範圍的字元 +/- 1
先掃shifts 記錄 start/end+1 的變化值
再掃string index時, 更新目前要轉換的總變化值 跟字元
## Code
```cpp
class Solution {
public:
string shiftingLetters(string s, vector<vector<int>>& shifts) {
int n = s.size();
vector<int> change(n+1, 0);
for (vector<int>& shift: shifts) {
int delta = shift[2] ? 1 : -1;
change[shift[0]] += delta;
change[shift[1]+1] -= delta;
}
int curr = 0;
for (int i=0; i<n; ++i) {
curr = (curr + change[i]) % 26;
s[i] = 'a' + (s[i] - 'a' + curr + 26) % 26;
}
return s;
}
};
```