File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ string shiftingLetters(string s, vector<vector<int>>& shifts) {
4
+ int n=s.length();
5
+ vector<int> count(n+1,0);
6
+ for(auto it:shifts){
7
+ int l=it[0];
8
+ int r=it[1];
9
+ int dir=it[2];
10
+ if(dir == 1){
11
+ count[l]+=1;
12
+ count[r+1]-=1;
13
+ }else{
14
+ count[l]-=1;
15
+ count[r+1]+=1;
16
+ }
17
+ }
18
+ //for(int i=0;i<=n;i++) cout<<count[i]<<" ";
19
+ vector<int> pref(n+1,0);
20
+ pref[0]=count[0];
21
+ for(int i=1;i<=n;i++){
22
+ pref[i]=count[i]+pref[i-1];
23
+ }
24
+ //cout<<pref[n]<<endl;
25
+ for(int i=0;i<n;i++){
26
+ int ele=s[i]-'a';
27
+ if(pref[i] < 0){
28
+ ele=(ele + pref[i]) % 26;
29
+ //cout<<ele<<" ";
30
+ ele=(ele + 26) % 26;
31
+ cout<<ele<<endl;
32
+ s[i]=(ele+'a');
33
+ }else{
34
+ ele = (ele + pref[i]) % 26;
35
+ s[i]=(ele+'a');
36
+ }
37
+ }
38
+ return s;
39
+ }
40
+ };
You can’t perform that action at this time.
0 commit comments