Advertisement
nikunjsoni

97

Jun 2nd, 2021
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     bool isInterleave(string s1, string s2, string s3) {
  4.         if(s3.length() != s1.length() + s2.length())
  5.             return false;
  6.    
  7.         bool table[s1.length()+1][s2.length()+1];
  8.    
  9.         for(int i=0; i<s1.length()+1; i++)
  10.             for(int j=0; j< s2.length()+1; j++){
  11.                 if(i==0 && j==0)
  12.                     table[i][j] = true;
  13.                 else if(i == 0)
  14.                     table[i][j] = (table[i][j-1] && s2[j-1] == s3[i+j-1]);
  15.                 else if(j == 0)
  16.                     table[i][j] = (table[i-1][j] && s1[i-1] == s3[i+j-1]);
  17.                 else
  18.                     table[i][j] = (table[i-1][j] && s1[i-1] == s3[i+j-1]) || (table[i][j-1] && s2[j-1] == s3[i+j-1]);
  19.             }
  20.  
  21.         return table[s1.length()][s2.length()];
  22.     }  
  23. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement