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