nikunjsoni

838

Apr 14th, 2021
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     string pushDominoes(string A) {
  4.         int n = A.size();
  5.         int dist[n];
  6.         memset(dist, 0, sizeof(dist));
  7.        
  8.         // dist from left.
  9.         int force = 0;
  10.         for(int i=0; i<n; i++){
  11.             if(A[i] == 'R') force = n;
  12.             else if(A[i] == 'L') force = 0;
  13.             else force = max(force-1, 0);
  14.             dist[i] += force;
  15.         }
  16.        
  17.         // dist from right.
  18.         force = 0;
  19.         for(int i=n-1; i>=0; i--){
  20.             if(A[i] == 'L') force = n;
  21.             else if(A[i] == 'R') force = 0;
  22.             else force = max(force-1, 0);
  23.             dist[i] -= force;
  24.         }
  25.        
  26.         string ans = "";
  27.         for(int i=0; i<n; i++){
  28.             if(dist[i] > 0) ans += "R";
  29.             else if(dist[i] < 0) ans += "L";
  30.             else ans += ".";
  31.         }
  32.         return ans;
  33.     }
  34. };
Advertisement
Add Comment
Please, Sign In to add comment