TABULATION CODE || SUPER SIMPLE !!!
Complexity\n- Time complexity:\nO(N^2)\n\n\n\n# Code\n\nclass Solution {\n    public boolean isMatch(String s, String p) {\n        int n=s.length();\n        i
# Complexity\n- Time complexity:\nO(N^2)\n\n![billi.jpg](https://assets.leetcode.com/users/images/ef93b374-152c-4e03-9428-84cfcb5fc768_1712404199.81041.jpeg)\n\n# Code\n```\nclass Solution {\n    public boolean isMatch(String s, String p) {\n        int n=s.length();\n        int m=p.length();\n        boolean dp[][]=new boolean[n+1][m+1];\n        dp[0][0]=true;\n       for(int i=1;i<n+1;i++){\n           dp[i][0]=false;\n       }\n       for(int i=1;i<m+1;i++){\n           if(p.charAt(i-1)==\'*\')\n           dp[0][i]=dp[0][i-1];\n        }       for(int i=1;i<n+1;i++){\n         for(int j=1;j<m+1;j++){ \n            if(s.charAt(i-1)==p.charAt(j-1)|| p.charAt(j-1)==\'?\'){\n                dp[i][j]=dp[i-1][j-1];\n                \n            }else if(p.charAt(j-1)==\'*\'){\n                dp[i][j]=dp[i-1][j]||dp[i][j-1];\n            }else{\n                dp[i][j]=false;\n            }\n                \n         }\n       }\n       return dp[n][m]; \n    }\n}\n```
['Dynamic Programming', 'Memoization', 'Java']