Skip to content

Commit d5133ea

Browse files
authored
Create 2381. Shifting Letters II (#682)
2 parents 7f72963 + 2a664eb commit d5133ea

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

2381. Shifting Letters II

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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+
};

0 commit comments

Comments
 (0)