From 414ab585bcbf47eb8c3996069d488546afb614e6 Mon Sep 17 00:00:00 2001 From: Yuduo Zhou Date: Wed, 20 Apr 2022 10:35:37 -0700 Subject: [PATCH 1/2] Create Strong Password Checker --- Strong Password Checker | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Strong Password Checker diff --git a/Strong Password Checker b/Strong Password Checker new file mode 100644 index 0000000..e9ed0cb --- /dev/null +++ b/Strong Password Checker @@ -0,0 +1,16 @@ +import java.util.regex.*; +class Solution { + public int strongPasswordChecker(String password) { + Pattern strongPattern = Pattern.compile("^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9!\\.]{6,20}$"); + if (strongPattern.matcher(password).matches()) return 0; + + if (password.length() <= 3) {return 6-password.length();} + int distance = 0; + if (password.length() > 20) {distance = password.length()-20; } + + + Pattern repeatedChar = Pattern.compile("([A-Za-z0-9])\1\1"); + if (repeatedChar.matcher(password).matches()) distance++; + return distance; + } +} From 323ff1ba95b07e9a01461535b52491a48abcecd5 Mon Sep 17 00:00:00 2001 From: Yuduo Zhou Date: Thu, 21 Apr 2022 23:26:02 -0700 Subject: [PATCH 2/2] Create CoinChange.java --- CoinChange.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 CoinChange.java diff --git a/CoinChange.java b/CoinChange.java new file mode 100644 index 0000000..8e883db --- /dev/null +++ b/CoinChange.java @@ -0,0 +1,23 @@ +class Solution { + public int coinChange(int[] coins, int amount) { + if (amount == 0) return 0; + int[] change = new int[amount+1]; + change[0] = 0; + for (int c : coins) { + if (c <= amount) + change[c] = 1; + } + for (int i = 1; i <= amount; i++) { + if (change[i] == 1) continue; + int min = -1; + for (int c:coins) { + if (i - c>0 && change[i-c] != -1) { + int withC = change[i-c] + 1; + min = min < 0 ? withC : Math.min(withC, min); + } + } + change[i] = min; + } + return change[amount]; + } +}