Round 1
Questions:
Question 1:
class Result { public static List<String> bitPattern(List<Integer> num) { int n = num.size(); StringBuilder earlier = new StringBuilder(); StringBuilder later = new StringBuilder(); Set<Integer> seenEarlier = new HashSet<>(); Map<Integer, Integer> countMap = new HashMap<>(); for (int val : num) { countMap.put(val, countMap.getOrDefault(val, 0) + 1); } for (int i = 0; i < n; i++) { int val = num.get(i); if (seenEarlier.contains(val)) { earlier.append("1"); } else { earlier.append("0"); } seenEarlier.add(val); countMap.put(val, countMap.get(val) - 1); if (countMap.get(val) > 0) { later.append("1"); } else { later.append("0"); } } return Arrays.asList(earlier.toString(), later.toString()); } }
Question 2:
class Result { public static int getSpecialSubstring(String s, int k, String charValue) { int left = 0, right = 0, maxLength = 0; int normalCount = 0; while (right < s.length()) { if (charValue.charAt(s.charAt(right) - 'a') == '0') { normalCount++; } while (normalCount > k) { if (charValue.charAt(s.charAt(left) - 'a') == '0') { normalCount--; } left++; } maxLength = Math.max(maxLength, right - left + 1); right++; } return maxLength; } }
Candidate's Approach
No approach provided.
Interviewer's Feedback
No feedback provided.