From 4449207e2cefbf4249df6e1f13e5d9b6a83b85aa Mon Sep 17 00:00:00 2001 From: afrinc Date: Sun, 1 Oct 2023 11:52:32 +0530 Subject: [PATCH 1/3] Added Regular Expression matching --- Worktech/Hard/RegularExpressionMatching.java | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Worktech/Hard/RegularExpressionMatching.java diff --git a/Worktech/Hard/RegularExpressionMatching.java b/Worktech/Hard/RegularExpressionMatching.java new file mode 100644 index 0000000..91e28c4 --- /dev/null +++ b/Worktech/Hard/RegularExpressionMatching.java @@ -0,0 +1,33 @@ +class Solution { + boolean isMatch (String s, String p) { + boolean dp[][] = new boolean[s.length() + 1][p.length() + 1]; + for(int i = 0; i <= s.length(); i++){ + for(int j = 0; j <= p.length(); j++){ + if(j == 0 && j == i) { + dp[i][j] = true; + } + else if(j == 0) { + dp[i][j] = false; + } + else if(i == 0 && p.charAt(j - 1) != '*') { + dp[i][j] = false; + } + else if(i == 0) { + dp[i][j] = dp[i][j - 2]; + } + else { + if(p.charAt(j - 1) == '.' || s.charAt(i - 1) == p.charAt(j - 1)) { + dp[i][j] = dp[i - 1][j - 1]; + } + if(p.charAt(j - 1) == '*'){ + dp[i][j] = dp[i][j - 2]; + boolean match = ((p.charAt(j - 2) == '.' || p.charAt(j - 2) == s.charAt(i - 1)) && dp[i - 1][j]); + dp[i][j] = dp[i][j] || match; + } + } + } + } + return dp[s.length()][p.length()]; + } +} + From b75b59538de2f2212cedcb9b348c3c7780f60153 Mon Sep 17 00:00:00 2001 From: afrinc Date: Sun, 1 Oct 2023 11:57:44 +0530 Subject: [PATCH 2/3] Revert "Added Regular Expression matching" This reverts commit 4449207e2cefbf4249df6e1f13e5d9b6a83b85aa. --- Worktech/Hard/RegularExpressionMatching.java | 33 -------------------- 1 file changed, 33 deletions(-) delete mode 100644 Worktech/Hard/RegularExpressionMatching.java diff --git a/Worktech/Hard/RegularExpressionMatching.java b/Worktech/Hard/RegularExpressionMatching.java deleted file mode 100644 index 91e28c4..0000000 --- a/Worktech/Hard/RegularExpressionMatching.java +++ /dev/null @@ -1,33 +0,0 @@ -class Solution { - boolean isMatch (String s, String p) { - boolean dp[][] = new boolean[s.length() + 1][p.length() + 1]; - for(int i = 0; i <= s.length(); i++){ - for(int j = 0; j <= p.length(); j++){ - if(j == 0 && j == i) { - dp[i][j] = true; - } - else if(j == 0) { - dp[i][j] = false; - } - else if(i == 0 && p.charAt(j - 1) != '*') { - dp[i][j] = false; - } - else if(i == 0) { - dp[i][j] = dp[i][j - 2]; - } - else { - if(p.charAt(j - 1) == '.' || s.charAt(i - 1) == p.charAt(j - 1)) { - dp[i][j] = dp[i - 1][j - 1]; - } - if(p.charAt(j - 1) == '*'){ - dp[i][j] = dp[i][j - 2]; - boolean match = ((p.charAt(j - 2) == '.' || p.charAt(j - 2) == s.charAt(i - 1)) && dp[i - 1][j]); - dp[i][j] = dp[i][j] || match; - } - } - } - } - return dp[s.length()][p.length()]; - } -} - From 822b6dc939b34c0ce50331472a23ac4ae6cb1351 Mon Sep 17 00:00:00 2001 From: afrinc Date: Tue, 30 Sep 2025 22:28:31 +0530 Subject: [PATCH 3/3] adding solution of daily probs --- .../Easy/IsSubsequence/IsSubsequence.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 LeetCode/Algorithms/Easy/IsSubsequence/IsSubsequence.java diff --git a/LeetCode/Algorithms/Easy/IsSubsequence/IsSubsequence.java b/LeetCode/Algorithms/Easy/IsSubsequence/IsSubsequence.java new file mode 100644 index 0000000..a512fb4 --- /dev/null +++ b/LeetCode/Algorithms/Easy/IsSubsequence/IsSubsequence.java @@ -0,0 +1,40 @@ +public class IsSubsequence { + public boolean isSubsequence(String s, String t) { + if (s.isEmpty()) + return true; + if (t.isEmpty()) + return false; + int i = 0; // s pointer + int j = 0; // t pointer + while (i != s.length() && j != t.length()) { + if (s.charAt(i) == t.charAt(j)) { + i++; + } + j++; + } + if (i == s.length()) + return true; + return false; + } + + public boolean isSubsequence_II(String s, String t) { + if (s.length() == 0) + return true; + int i = 0, j = 0; + while (j < t.length()) { + char a = s.charAt(i); + char b = t.charAt(j); + + if (a == b) { + i++; + + if (i == s.length()) { + return true; + } + } + j++; + } + return false; + } +} +