Skip to content

ABB Coding Questions

Overview

Practice ABB coding questions in the style students report for online assessments and technical interviews. Focus areas: Aptitude, electrical/automation basics, coding. Languages commonly allowed: C, C++, Python, IEC languages (role).

ABB coding pattern

Item Typical expectation
Problems 1-3 coding tasks depending on drive
Skills Aptitude, electrical/automation basics, coding
Languages C, C++, Python, IEC languages (role) (use what the assessment email lists)
What matters Correctness first, then speed and clear code

Practice problems

Question 1: linked list cycle

Coding Q1: Linked list cycle

Problem: Given the head of a linked list, return true if there is a cycle and false otherwise.

Approach: Floyd’s tortoise and hare: move one pointer one step and another two steps. If they meet, a cycle exists. If the fast pointer hits null, there is no cycle.

Complexity: O(n) time, O(1) space

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 2: binary tree level order

Coding Q2: Binary tree level order

Problem: Given the root of a binary tree, return the level-order traversal (breadth-first) as a list of levels.

Approach: Use a queue. For each level, drain the current queue size, collect values, and enqueue children for the next level.

Complexity: O(n) time, O(n) space

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 3: coin change

Coding Q3: Coin change (min coins)

Problem: Given coin denominations and an amount, return the fewest coins needed to make that amount, or -1 if it is impossible.

Approach: Unbounded knapsack DP: let dp[x] be the minimum coins for amount x. For each coin, update dp[c..amount]. Initialize dp[0] = 0 and the rest to a large sentinel.

Complexity: O(amount × coins)

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Coding Q4: Binary search

Problem: Given a sorted array of distinct integers and a target, return the index of target or -1 if missing.

Approach: Maintain lo/hi. Compare mid with target and shrink the half that cannot contain it. Careful with overflow-free mid and empty arrays.

Complexity: O(log n) time

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 5: move zeros

Coding Q5: Move zeros

Problem: Move all zeros in an array to the end while keeping the relative order of non-zero elements.

Approach: Two pointers: write non-zeros toward the front, then fill the remainder with zeros. Or swap zeros as you scan.

Complexity: O(n) time, O(1) space

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 6: rotate array

Coding Q6: Rotate array

Problem: Rotate an array to the right by k steps. Example: [1,2,3,4,5,6,7], k = 3 → [5,6,7,1,2,3,4].

Approach: Normalize k %= n. Reverse the whole array, reverse the first k elements, then reverse the rest. That yields the rotation in place.

Complexity: O(n) time, O(1) space

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 7: first unique character

Coding Q7: First unique character

Problem: Find the first non-repeating character in a string and return its index, or -1 if none exists.

Approach: Count frequencies in one pass (hash map or array of 26 for lowercase). Second pass returns the first index with count 1.

Complexity: O(n) time

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 8: stack with min

Coding Q8: Stack with min

Problem: Design a stack that supports push, pop, top, and getMin in average O(1) time.

Approach: Keep a parallel min-stack (or store pairs). When pushing, also push the new minimum. When popping, pop both stacks.

Complexity: O(1) per operation amortized

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 9: maximum subarray sum

Coding Q9: Maximum subarray sum (Kadane)

Problem: Given an integer array, find the contiguous subarray with the largest sum and return that sum. Example: [-2,1,-3,4,-1,2,1,-5,4] → 6 (from [4,-1,2,1]).

Approach: Keep a running sum. If the running sum drops below 0, reset it to 0 before taking the next element (or track the best ending-here value). Track the global maximum as you scan once from left to right.

Complexity: O(n) time, O(1) extra space

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Question 10: reverse a string in place

Coding Q10: Reverse a string in place

Problem: Given a mutable character array representing a string, reverse it in place without allocating another array of the same size.

Approach: Use two pointers at the start and end. Swap characters, then move inward until the pointers meet. Watch empty and single-character inputs.

Complexity: O(n) time, O(1) extra space

ABB tip: Restate the problem, sketch a brute-force idea, then tighten it. Call out edge cases (empty input, single element, overflow) before you write code.

Pattern drill plan (2 weeks)

Day Drill
Mon Arrays + hashing (2 problems)
Tue Two pointers / sliding window
Wed Stacks / strings
Thu Trees or graphs basics
Fri Timed mock (1-2 problems)
Sat Re-solve misses cold
Sun Explain your project out loud + rest

Comments & Suggestions

Similar companies

Siemens · Honeywell · Bosch · L&T