Probs
Probs
Determine whether an
Input: x = -121
integer `x` is a palindrome.
Palindrome Output: false
3 An integer is a palindrome { "x": 121 }, 1 easy
Number
when it reads the same
backward as forward
Input: [2, 4, 6, 8]
Find the maximum sum of
Not Even Output: 20
9 even numbers in a given [1, 2, 3, 4, 5, 6] 12 easy
Max Sum
array.
Input: education
Count Vowels Vowels: 2,
Count the number of vowels Output: Vowels: 5, Consonants: 4
15 and hello Consonants: easy
and consonants in a string.
Consonants 3
Input: [2, 3, 5, 7]
Calculate the sum of the
Consecutive Output: 76
21 products of all consecutive [1, 2, 3, 4] 20 medium Input: [['T', '.', 'T'], ['.', 'X', '.'], ['T', '.', '.']] Output: 6
Product Sum Help Bob collect all [['.', 'T', '.'], ['X', '.', 'T'],
22 Bob's Quest elements
treasures in aangrid
array.
while 4 medium
['.', '.', '.']]
avoiding obstacles
Input: 'abcde', ['L1', 'R4']
Scroll-a- Perform a series of scroll Output: 'bcdea'
23 'hello', ['R1', 'L2', 'R3'] 'llohe' medium
palooza operations on a string
Input: [1, 1, 2, 3, 4, 4, 5]
Find
Find all duplicates in an Output: [1, 4]
25 Duplicates in [4, 3, 2, 7, 8, 2, 3, 1] [2, 3] medium
integer array
an Array
Input: 1, 5
MystiXORam Calculate the XOR of all Output: 1
26 2, 6 0 hard
a numbers in a given range
Input: {1: [2, 3, 4], 2: [], 3: [5, 6], 4: [], 5: [], 6: []}, 3
Count the number of
Tree Subtree subtrees in a given tree that {1: [2, 3], 2: [4, 5], 3:
27 3 hard Output: 2
Divisibility satisfy specific divisibility [], 4: [], 5: []}, 2
conditions
Input: 1, 50
Lucky Count the number of 'lucky Output: 10
30 1, 100 20 hard
Numbers numbers' in a given range
Test cases
Python Code
2 3
def fizz_buzz(n):
result = []
for i in range(1, n + 1):
Input: 20
if i % 3 == 0 and i % 5 == 0:
Output: ["1", "2", "Fizz", "4", "Buzz", "Fizz",
Input: 7 result.append("FizzBuzz")
"7", "8", "Fizz", "Buzz", "11", "Fizz", "13", class elif
ListNode: def fizz_buzz(n):
Output: ["1", "2", "Fizz", "4", "Buzz", "Fizz", "7"] i % 3 == 0:
"14", "FizzBuzz", "16", "17", "Fizz", "19", def __init__(self, val=0, next=None): return ["FizzBuzz" if i % 1
result.append("Fizz")
"Buzz"] self.val "Buzz" if i % 5 == 0 else str(i
elif i % = val 0:
5 ==
self.next = next
result.append("Buzz") def merge_two_lists(list1, list
else: merged = []
def merge_two_lists(list1,
result.append(str(i))list2): i=j=0
dummy = ListNode()
return result while i < len(list1) and j <
current = dummy if list1[i] < list2[j]:
Input: list1 = [0, 1], list2 = [2, 3, 4] Input: list1 = [1, 4], list2 = [3, 5, 7]
while list1 and list2: merged.append(list1[i
Output: [0, 1, 2, 3, 4] Output: [1, 3, 4, 5, 7]
if list1.val < list2.val: i += 1
current.next = list1 else:
list1 = list1.next merged.append(list2[j
else: j += 1
current.next = list2 merged.extend(list1[i:])
list2 = list2.next merged.extend(list2[j:])
def is_valid(s): def is_valid_parentheses(s):
stack = [] stack = []
mapping = {')': '(', '}': '{', ']': '['} mapping = {')': '(', '}': '{', ']
for char in s: for char in s:
Input: "()" Input: "]("
if char in mapping: if char in mapping:
Output: true Output: false
top = stack.pop() if stack else '#' top_element = stack.p
if mapping[char] != top: if mapping[char] != to
return False return False
else: else:
stack.append(char) stack.append(char)
return not stack return not stack
def reverse_integer(x):
sign = -1 if x < 0 else 1 def reverse_integer(x):
Input: 1001
Input: 4567 x = abs(x) sign = -1 if x < 0 else 1
Output: 1001
Output: 7654 reversed_num = int(str(x)[::-1]) reversed_x = int(str(abs(x)
if reversed_num > 2**31 - 1: return sign * reversed_x if
return 0 1 else 0
return sign * reversed_num
Input: [5, 10, 15] Input: [10, 15, 25, 30, 40] Output:
def max_sum_not_even(num
Output: 30 90 def max_even_sum(nums):
nums = [num for num in nu
return sum(num for num in nums if num % 2 == 0)
return sum(nums)
Input: [7, 8, 9], [10, 11, 12] Input: [5, 6, 7], [1, 2, 3]
def maximize_sum(arr1, arr2):
Output: 150 Output: 21 def swap_sum(arr1, arr2):
combined = sorted(arr1 + arr2, reverse=True)
return sum(arr2) - sum(arr1
return sum(combined[:len(arr1)])
def count_vowels_and_consonants(s):
def count_vowels_and_conso
Input: "ChatGPT" Input: "This is a test" vowels = "aeiouAEIOU"
vowels = set('aeiouAEIOU
Output: Vowels: 1, Consonants: 6 Output: Vowels: 4, Consonants: 7 v_count = sum(1 for char in s if char in vowels)
v_count = sum(1 for char i
c_count = sum(1 for char in s if char.isalpha() and char not in
c_count = sum(1 for char i
vowels)
return v_count, c_count
return f"Vowels: {v_count}, Consonants: {c_count}"
def optimal_division(nums):
def minimize_difference(nums):
Input: [1, 3, 5, 7] Input: [100, 50, 25, 10] if len(nums) == 1:
nums.sort()
Output: [[1, 3], [5, 7]] Output: [[100], [50, 25, 10]] return str(nums[0])
half = len(nums) // 2
if len(nums) == 2:
return [nums[:half], nums[half:]]
return f"{nums[0]}/{num
return f"{nums[0]}/({'/'.joi
Input: [[0, 0], [1, 1]] Input: [[1, 0], [1, 1]]
Output: 2 Output: 3 def min_steps_to_turn_off_lights(grid): def turn_off_lights(lights):
def zeropocalypse(matrix):
return sum(sum(row) for row in grid) return [i for i, light in enum
rows, cols = len(matrix), le
zero_rows, zero_cols = set
def replace_zeros(matrix): for i in range(rows):
rows, cols = len(matrix), len(matrix[0]) for j in range(cols):
Input: [[1, 0, 0], [1, 1, 0]] Input: [[0, 0], [0, 0]]
for r in range(rows): if matrix[i][j] == 0:
Output: [[1, 1, 1], [1, 1, 1]] Output: [[1, 1], [1, 1]]
for c in range(cols): zero_rows.add(i)
if matrix[r][c] == 0: zero_cols.add(j)
matrix[r][c] = 1 for i in range(rows):
return matrix for j in range(cols):
def collect_treasures(grid): if i in zero_rows or j i
Input: [1, 2, 3] Input: [2, 3, 4, 5] rows, cols = len(grid), len(grid[0])
Input: matrix[i][j] = 0
Output:[["X",
20 ".", ".", "."], [".", "X", ".", "."], ["T", ".", Input:
Output:[[".",
54 ".", "."], [".", "X", "."], ["T", ".", deftreasures
consecutive_product_sum(nums):
=0 def consecutive_product_sum
".", "."]] "."]] return matrix
return
for rowsum(nums[i]
in grid: * nums[i + 1] for i in range(len(nums) - 1)) defreturn sum(nums[i] * nums
bobs_quest(steps):
Output: 4 Output: 2
for cell in row: return sum(abs(step) for ste
if cell == 'T':
treasures += 1
return treasures
def scroll_string(s, operations):
s = list(s)
for op in operations:
Input: 'flip', ['R1', 'L2'] Input: 'python', ['R1', 'L3'] direction, steps = op[0], int(op[1:])
Output: 'lipf' Output: 'honpyt' steps %= len(s) def scroll_palooza(scrolls):
if direction == 'R': return sum(len(scroll) for s
s = s[-steps:] + s[:-steps]
elif direction == 'L':
s = s[steps:] + s[:steps]
return ''.join(s)
Input: Input:
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]] [[1, 2, 3, 4]]
def rotate_matrix(matrix):
Output: Output: def rotate_matrix(matrix):
matrix[:] = zip(*matrix[::-1])
[[9, 7, 5, 3, 1], [10, 8, 6, 4, 2]] [[4], [3], [2], [1]] return list(zip(*matrix[::-1]
return matrix
def find_duplicates(nums):
def find_duplicates(nums):
seen = set()
Input: Input: result = []
duplicates = set()
[1, 1, 1, 1] [0, 1, 1, 2, 2, 3, 4] for num in nums:
for num in nums:
Output: [1] Output: if nums[abs(num) - 1] < 0:
if num in seen:
[1, 2] result.append(abs(num))
duplicates.add(num)
else:
else:
nums[abs(num) - 1] *= -1
seen.add(num)
return result
def range_xor(start, end): return list(duplicates)
def xor_upto(x):
if x % 4 == 0:
return x def mystixorama(nums):
Input: 0, 8
Input: 4, 9 Output: 12 elif x % 4 == 1: result = 0
Output: 8
return 1 for num in nums:
elif x % 4 == 2: result ^= num
return x + 1 return result
else:
return 0
return xor_upto(end) ^ xor_upto(start - 1)
def count_divisible_subtrees(tree, divisor):
count = 0
def dfs(node):
nonlocal count
if not tree[node]:
Input: {1: [2], 2: [3, 4], 3: [], 4: []}, 3 Input: {1: [2, 3, 4], 2: [], 3: [], 4: []}, 1 return 1
Output: 1 Output: 3 subtree_size = 1 def subtree_divisibility(tree, d
for child in tree[node]: return all(value % divisor =
subtree_size += dfs(child)
if subtree_size % divisor == 0:
count += 1
return subtree_size
dfs(1)
return count
Input: [7, 6], [3, 4] Input: [10, 20, 30], [5, 15, 25]
Output: 7 Output: 27 def bitwise_bafflement(arr1, arr2): def bitwise_bafflement(nums
return sum(a ^ b for a, b in zip(arr1, arr2)) return sum(a & b for a, b in
def min_tree_inversions(tree):
def dfs(node):
Input: {1: [2, 3], 2: [], 3: []}, 3 Input: {1: [2, 3], 2: [4], 3: [], 4: []}, 4
inversions = 0 def tree_inversions(tree):
Output: 0 Output: 1
for child in tree[node]: return sum(1 for i in range(
inversions += dfs(child) tree[i] > tree[j])
return inversions + (1 if len(tree[node]) > 1 else 0)
return dfs(1)
wo_sum(nums, target):
m_to_index = {}
i, num in enumerate(nums):
complement = target - num 0.000058 seconds
f complement in num_to_index:
return [num_to_index[complement], i]
num_to_index[num] = i
ax_subarray(nums):
x_sum = current_sum = nums[0]
num in nums[1:]:
0.000062 seconds
current_sum = max(num, current_sum + num)
max_sum = max(max_sum, current_sum)
urn max_sum
_palindrome(x):
< 0:
0.000053 seconds
eturn False
urn str(x) == str(x)[::-1]
zz_buzz(n):
urn ["FizzBuzz" if i % 15 == 0 else "Fizz" if i % 3 == 0 else 0.000063 seconds
z" if i % 5 == 0 else str(i) for i in range(1, n + 1)]
erge_two_lists(list1, list2):
rged = []
j=0
ile i < len(list1) and j < len(list2):
f list1[i] < list2[j]:
merged.append(list1[i])
i += 1 0.000084 seconds
else:
merged.append(list2[j])
j += 1
rged.extend(list1[i:])
rged.extend(list2[j:])
_valid_parentheses(s):
ck = []
pping = {')': '(', '}': '{', ']': '['}
char in s:
f char in mapping:
top_element = stack.pop() if stack else '#' 0.000051 seconds
if mapping[char] != top_element:
return False
else:
stack.append(char)
urn not stack
verse_integer(x):
n = -1 if x < 0 else 1
ersed_x = int(str(abs(x))[::-1]) 0.000043 seconds
urn sign * reversed_x if -(2**31) <= sign * reversed_x <= 2**31 -
0
imbing_stairs(n):
<= 2:
eturn n
b = 1, 2 0.0000198 seconds
_ in range(3, n + 1):
a, b = b, a + b
urn b
ax_sum_not_even(nums):
ms = [num for num in nums if num % 2 != 0] 0.000060 seconds
urn sum(nums)
nd_pairs(nums, k):
ms.sort()
n = set()
rs = set()
num in nums:
f num - k in seen: 0.000063 seconds
pairs.add((num - k, num))
f num + k in seen:
pairs.add((num, num + k))
seen.add(num)
urn len(pairs)
oudy_days(days):
0.000088 seconds
urn [day for day in days if day < 0]
nge_sum_query(nums, queries):
0.000086 seconds
urn [sum(nums[start:end+1]) for start, end in queries]
wap_sum(arr1, arr2):
0.000068 seconds
urn sum(arr2) - sum(arr1)
ller_monsters(monsters, power):
0.000060 seconds
urn [monster for monster in monsters if monster <= power]
ount_vowels_and_consonants(s):
wels = set('aeiouAEIOU')
count = sum(1 for char in s if char in vowels) 0.0000114 seconds
count = sum(1 for char in s if char.isalpha() and char not in vowels)
urn v_count, c_count
move_interval(intervals, to_remove):
ult = []
start, end in intervals:
f end <= to_remove[0] or start >= to_remove[1]:
result.append((start, end))
else: 0.00005 seconds
if start < to_remove[0]:
result.append((start, to_remove[0]))
if end > to_remove[1]:
result.append((to_remove[1], end))
urn result
yperloop_path(paths, hyperloops):
al = sum(paths)
count = sum(min(hyperloop, path) for path, hyperloop in zip(paths, 0.00004 seconds
loops))
urn total - discount
ptimal_division(nums):
en(nums) == 1:
eturn str(nums[0])
0.00003 seconds
en(nums) == 2:
eturn f"{nums[0]}/{nums[1]}"
urn f"{nums[0]}/({'/'.join(map(str, nums[1:]))})"
rn_off_lights(lights):
eropocalypse(matrix): 0.00002 seconds
urn [i for i, light in enumerate(lights) if light == 0]
ws, cols = len(matrix), len(matrix[0])
o_rows, zero_cols = set(), set()
i in range(rows):
or j in range(cols):
if matrix[i][j] == 0:
zero_rows.add(i) 0.00009 seconds
zero_cols.add(j)
i in range(rows):
or j in range(cols):
if i in zero_rows or j in zero_cols:
matrix[i][j] = 0
onsecutive_product_sum(nums):
urn matrix 0.00006 seconds
urn sum(nums[i] * nums[i + 1] for i in range(len(nums) - 1))
obs_quest(steps):
0.00003 seconds
urn sum(abs(step) for step in steps)
roll_palooza(scrolls):
0.00007 seconds
urn sum(len(scroll) for scroll in scrolls if scroll.isdigit())
tate_matrix(matrix):
0.00004 seconds
urn list(zip(*matrix[::-1]))
nd_duplicates(nums):
n = set()
plicates = set()
num in nums:
f num in seen: 0.00005 seconds
duplicates.add(num)
else:
seen.add(num)
urn list(duplicates)
ystixorama(nums):
ult = 0
num in nums: 0.00004 seconds
esult ^= num
urn result
ubtree_divisibility(tree, divisor):
0.00003 seconds
urn all(value % divisor == 0 for value in tree)
twise_bafflement(nums):
0.00006 seconds
urn sum(a & b for a, b in zip(nums, nums[1:]))
ee_inversions(tree):
urn sum(1 for i in range(len(tree)) for j in range(i + 1, len(tree)) if 0.00005 seconds
] > tree[j])
cky_numbers(nums):
urn [num for num in nums if sum(int(digit) for digit in str(num)) % 0.00004 seconds
0]