π CodeSignal Easy Problems β Ruby Solutions
1οΈβ£ Count Greater Than First
def count_greater_than_first(arr)
first = arr[0]
arr.count { |num| num > first }
end
2οΈβ£ First Duplicate
def first_duplicate(arr)
seen = {}
arr.each_with_index do |num, i|
return num if seen[num]
seen[num] = true
end
-1
end
3οΈβ£ Longest Substring Without Repeating Characters
def longest_unique_substring(s)
seen = {}
left = 0
max_len = 0
s.chars.each_with_index do |char, right|
if seen.key?(char) && seen[char] >= left
left = seen[char] + 1
end
seen[char] = right
max_len = [max_len, right - left + 1].max
end
max_len
end
4οΈβ£ Maximum Sum Subarray of Size k
def max_subarray_sum(arr, k)
window_sum = 0
max_sum = -Float::INFINITY
arr.each_with_index do |num, i|
window_sum += num
if i >= k - 1
max_sum = [max_sum, window_sum].max
window_sum -= arr[i - k + 1]
end
end
max_sum
end
5οΈβ£ Valid Palindrome
def is_palindrome(s)
left = 0
right = s.length - 1
while left < right
if !s[left].match?(/[a-z0-9]/i)
left += 1
elsif !s[right].match?(/[a-z0-9]/i)
right -= 1
else
return false if s[left].downcase != s[right].downcase
left += 1
right -= 1
end
end
true
end
6οΈβ£ Two Sum
def two_sum(nums, target)
seen = {}
nums.each_with_index do |num, i|
complement = target - num
return [seen[complement], i] if seen.key?(complement)
seen[num] = i
end
[]
end
7οΈβ£ Merge Two Sorted Arrays
def merge_sorted(arr1, arr2)
merged = []
i = 0
j = 0
while i < arr1.length && j < arr2.length
if arr1[i] <= arr2[j]
merged << arr1[i]
i += 1
else
merged << arr2[j]
j += 1
end
end
merged.concat(arr1[i..-1]) if i < arr1.length
merged.concat(arr2[j..-1]) if j < arr2.length
merged
end
8οΈβ£ Binary Search
def binary_search(arr, target)
left = 0
right = arr.length - 1
while left <= right
mid = left + (right - left) / 2
if arr[mid] == target
return mid
elsif arr[mid] < target
left = mid + 1
else
right = mid - 1
end
end
-1
end
π Interview Pattern Tips
-
Hash β first duplicate, two sum, longest unique substring
-
Sliding window β fixed-size or variable sum
-
Two pointers β palindrome, merge arrays
-
Binary search β search in sorted arrays
Top comments (0)