MCPcopy Create free account
hub / github.com/neetcode-gh/leetcode / dfs

Method dfs

java/1220-count-vowels-permutation.java:113–140  ·  view source on GitHub ↗
(char c, int n, int l)

Source from the content-addressed store, hash-verified

111 }
112
113 private int dfs(char c, int n, int l){
114 if(l == n)
115 return 1;
116
117 String key = c + "_" + l;
118 if (memo.containsKey(key)) return memo.get(key);
119
120 long res = 0;
121 if (c == 'a') {
122 res = dfs('e', n, l + 1);
123 } else if (c == 'e') {
124 res = (res + dfs('a', n, l + 1)) % MOD;
125 res = (res + dfs('i', n, l + 1)) % MOD;
126 } else if (c == 'i') {
127 res = (res + dfs('a', n, l + 1)) % MOD;
128 res = (res + dfs('e', n, l + 1)) % MOD;
129 res = (res + dfs('o', n, l + 1)) % MOD;
130 res = (res + dfs('u', n, l + 1)) % MOD;
131 } else if (c == 'o') {
132 res = (res + dfs('i', n, l + 1)) % MOD;
133 res = (res + dfs('u', n, l + 1)) % MOD;
134 } else {
135 res = dfs('a', n, l + 1);
136 }
137
138 memo.put(key, (int)(res % MOD));
139 return (int)(res % MOD);
140 }
141}

Callers 1

countVowelPermutationMethod · 0.95

Calls 2

getMethod · 0.45
putMethod · 0.45

Tested by

no test coverage detected