Skip to main content

Software Engineer Coding Interview Questions

Review this list of 236 Coding Software Engineer interview questions and answers verified by hiring managers and candidates.
  • +2

    "#include #include bool palindrome(std::string &str, int left, int right, int error) { if (left >= right) { return true; } if (str[left] == str[right]) { return palindrome(str, left + 1, right - 1, error); } else if (error == 0) { return (palindrome(str, left + 1, right, 1) || palindrome(str,left, right -1,1)); } else { return false; } } int main() { std::string str = "abcbca"; int size = str.size() - 1; if"

    Dev S. - "#include #include bool palindrome(std::string &str, int left, int right, int error) { if (left >= right) { return true; } if (str[left] == str[right]) { return palindrome(str, left + 1, right - 1, error); } else if (error == 0) { return (palindrome(str, left + 1, right, 1) || palindrome(str,left, right -1,1)); } else { return false; } } int main() { std::string str = "abcbca"; int size = str.size() - 1; if"See full answer

    Software Engineer
    Coding
    +1 more
  • Adobe logoAsked at Adobe 
    Video answer for 'Edit distance'
    +32

    "from collections import deque def updateword(words, startword, end_word): if end_word not in words: return None # Early exit if end_word is not in the dictionary queue = deque([(start_word, 0)]) # (word, steps) visited = set([start_word]) # Keep track of visited words while queue: word, steps = queue.popleft() if word == end_word: return steps # Found the target word, return steps for i in range(len(word)): "

    叶 路. - "from collections import deque def updateword(words, startword, end_word): if end_word not in words: return None # Early exit if end_word is not in the dictionary queue = deque([(start_word, 0)]) # (word, steps) visited = set([start_word]) # Keep track of visited words while queue: word, steps = queue.popleft() if word == end_word: return steps # Found the target word, return steps for i in range(len(word)): "See full answer

    Software Engineer
    Coding
    +3 more
  • Software Engineer
    Coding
  • Video answer for 'Employee Earnings.'
    +67

    "select e.firstname as firstname, m.salary as manager_salary from employees e join employees m on e.manager_id = m.id where e.salary > m.salary; `"

    Ravi K. - "select e.firstname as firstname, m.salary as manager_salary from employees e join employees m on e.manager_id = m.id where e.salary > m.salary; `"See full answer

    Software Engineer
    Coding
    +4 more
  • Adobe logoAsked at Adobe 
    +36

    "Was this for an entry level engineer role?"

    Yeshwanth D. - "Was this for an entry level engineer role?"See full answer

    Software Engineer
    Coding
    +4 more
  • 🧠 Want an expert answer to a question? Saving questions lets us know what content to make next.

  • xAI logoAsked at xAI 

    "=>user => window {addfile(void * file, userID, chatID) => add to fileList=> Display(file pointer)} => file=> pointer to DB, thumbnail => file will stores in database, pointer to the file+ thumbnail to be visible to chat => file is associated with chat => chat : users list, notepad: post { , user posted} class file{ void * buffer = nullptr; string fileName = nullptr; public: file( void content, string filename ):fileName ("

    Ankush G. - "=>user => window {addfile(void * file, userID, chatID) => add to fileList=> Display(file pointer)} => file=> pointer to DB, thumbnail => file will stores in database, pointer to the file+ thumbnail to be visible to chat => file is associated with chat => chat : users list, notepad: post { , user posted} class file{ void * buffer = nullptr; string fileName = nullptr; public: file( void content, string filename ):fileName ("See full answer

    Software Engineer
    Coding
    +1 more
  • Adobe logoAsked at Adobe 
    +38

    "def is_palindrome(s: str) -> bool: new = '' for a in s: if a.isalpha() or a.isdigit(): new += a.lower() return (new == new[::-1]) debug your code below print(is_palindrome('abcba')) `"

    Anonymous Roadrunner - "def is_palindrome(s: str) -> bool: new = '' for a in s: if a.isalpha() or a.isdigit(): new += a.lower() return (new == new[::-1]) debug your code below print(is_palindrome('abcba')) `"See full answer

    Software Engineer
    Coding
    +4 more
  • Uber logoAsked at Uber 

    "public int minInsertions(String s) { int n = s.length(); int dp = new intn; for (int len = 2; len <= n; n++) { for (int i = 0; i + len - 1 < n: i++) { int j = i + len - 1; if (s.charAt(i) == s.charAt(j)) { dpi = dpi + 1; } else { dpi = 1 + Math.min(dpi + 1, dpi); } } } return dp0; } `"

    Jatin S. - "public int minInsertions(String s) { int n = s.length(); int dp = new intn; for (int len = 2; len <= n; n++) { for (int i = 0; i + len - 1 < n: i++) { int j = i + len - 1; if (s.charAt(i) == s.charAt(j)) { dpi = dpi + 1; } else { dpi = 1 + Math.min(dpi + 1, dpi); } } } return dp0; } `"See full answer

    Software Engineer
    Coding
    +1 more
  • +20

    "Since the problem asks for a O(logN) solution, I have to assume that the numbers are already sorted, meaning the same number are adjacent to each other, the value of the numbers shouldn't matter, and they expect us to use Binary Search. First, we should analyze the pattern of a regular number array without a single disrupter. Index: 0 1 2 3 4. 5 6. 7. 8. 9 Array:[1, 1, 2, 2, 4, 4, 5, 5, 6, 6] notice the odd indexes are always referencing the second of the reoccurring numbers and t"

    Bamboo Y. - "Since the problem asks for a O(logN) solution, I have to assume that the numbers are already sorted, meaning the same number are adjacent to each other, the value of the numbers shouldn't matter, and they expect us to use Binary Search. First, we should analyze the pattern of a regular number array without a single disrupter. Index: 0 1 2 3 4. 5 6. 7. 8. 9 Array:[1, 1, 2, 2, 4, 4, 5, 5, 6, 6] notice the odd indexes are always referencing the second of the reoccurring numbers and t"See full answer

    Software Engineer
    Coding
  • Apple logoAsked at Apple 
    Video answer for 'Find the container with the maximum volume of water.'

    "int getMaxWater(vector& nums) { int n = nums.size(); int mx = INT_MIN; int i=0, j=n-1; while(i<j) { int water = (j - i) * min(nums[i], nums[j]); mx = max(mx, water); if(nums[i] < nums[j]){ i++; } else { j--; } } return mx; } `"

    Richard W. - "int getMaxWater(vector& nums) { int n = nums.size(); int mx = INT_MIN; int i=0, j=n-1; while(i<j) { int water = (j - i) * min(nums[i], nums[j]); mx = max(mx, water); if(nums[i] < nums[j]){ i++; } else { j--; } } return mx; } `"See full answer

    Software Engineer
    Coding
    +3 more
  • Anthropic logoAsked at Anthropic 
    Software Engineer
    Coding
  • Adobe logoAsked at Adobe 
    +24

    "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"

    Alfred O. - "We can use dictionary to store cache items so that our read / write operations will be O(1). Each time we read or update an existing record, we have to ensure the item is moved to the back of the cache. This will allow us to evict the first item in the cache whenever the cache is full and we need to add new records also making our eviction O(1) Instead of normal dictionary, we will use ordered dictionary to store cache items. This will allow us to efficiently move items to back of the cache a"See full answer

    Software Engineer
    Coding
    +6 more
  • Apple logoAsked at Apple 

    "This is a geometric variation of the "Sliding Window" technique. The core challenge is converting a 2D coordinate problem into a 1D linear problem using angles. The standard approach is the Angular Sweep. By converting the Cartesian coordinates (x,y) of every tree into Polar coordinates (specifically the angle θ), we can process the trees based on the direction they lie in relative to the observer. The Strategy Coordinate Translation: Calculate the relative coordinates (Δx,Δy) for"

    Ashish D. - "This is a geometric variation of the "Sliding Window" technique. The core challenge is converting a 2D coordinate problem into a 1D linear problem using angles. The standard approach is the Angular Sweep. By converting the Cartesian coordinates (x,y) of every tree into Polar coordinates (specifically the angle θ), we can process the trees based on the direction they lie in relative to the observer. The Strategy Coordinate Translation: Calculate the relative coordinates (Δx,Δy) for"See full answer

    Software Engineer
    Coding
    +1 more
  • "This was a 60 minute assessment. The clock is ticking and you're being observed by a senior+ level engineer. Be ready to perform for an audience. The implementation for the system gets broken up into three parts: Implement creating accounts and depositing money into an account by ID Implement transferring money with validation to ensure the accounts for the transfer both exist and that the account money is being removed from has enough money in it to perform the transfer Implement find"

    devopsjesus - "This was a 60 minute assessment. The clock is ticking and you're being observed by a senior+ level engineer. Be ready to perform for an audience. The implementation for the system gets broken up into three parts: Implement creating accounts and depositing money into an account by ID Implement transferring money with validation to ensure the accounts for the transfer both exist and that the account money is being removed from has enough money in it to perform the transfer Implement find"See full answer

    Software Engineer
    Coding
    +1 more
  • +2

    "def sortedSquares(nums): n = len(nums) result = [0] * n left, right = 0, n - 1 pos = n - 1 while left abs(nums[right]): result[pos] = nums[left] ** 2 left += 1 else: result[pos] = nums[right] ** 2 right -= 1 pos -= 1 return result `"

    Ramachandra N. - "def sortedSquares(nums): n = len(nums) result = [0] * n left, right = 0, n - 1 pos = n - 1 while left abs(nums[right]): result[pos] = nums[left] ** 2 left += 1 else: result[pos] = nums[right] ** 2 right -= 1 pos -= 1 return result `"See full answer

    Software Engineer
    Coding
    +1 more
  • Microsoft logoAsked at Microsoft 
    Software Engineer
    Coding
    +1 more
  • Amazon logoAsked at Amazon 

    "function longestCommonPrefix(arr1, arr2) { const prefixSet = new Set(); for (let num of arr1) { let str = num.toString(); for (let i = 1; i <= str.length; i++) { prefixSet.add(str.substring(0, i)); } } let longestPrefix = ""; for (let num of arr2) { let str = num.toString(); for (let i = 1; i <= str.length; i++) { let prefix = str.substring(0, i); if (prefixSet.has(prefix)) { "

    Maykon henrique D. - "function longestCommonPrefix(arr1, arr2) { const prefixSet = new Set(); for (let num of arr1) { let str = num.toString(); for (let i = 1; i <= str.length; i++) { prefixSet.add(str.substring(0, i)); } } let longestPrefix = ""; for (let num of arr2) { let str = num.toString(); for (let i = 1; i <= str.length; i++) { let prefix = str.substring(0, i); if (prefixSet.has(prefix)) { "See full answer

    Software Engineer
    Coding
    +1 more
  • "Assumptions - Multiple reader/writer threads issue set() [with transaction] and get() operations concurrently All data can fit into memory. Requirements - Good performance (ex. less lock contention) Optimize memory footprint (ex. don't store stale entries in memory) Naive Approach - Wrap a standard hashmap/dictionary with reader-writer lock. We can also shard the map to reduce lock contention (ex. 32 segments for 32 core cpu) Allocate local buffer to a writer when a transacti"

    Pushkar G. - "Assumptions - Multiple reader/writer threads issue set() [with transaction] and get() operations concurrently All data can fit into memory. Requirements - Good performance (ex. less lock contention) Optimize memory footprint (ex. don't store stale entries in memory) Naive Approach - Wrap a standard hashmap/dictionary with reader-writer lock. We can also shard the map to reduce lock contention (ex. 32 segments for 32 core cpu) Allocate local buffer to a writer when a transacti"See full answer

    Software Engineer
    Coding
  • Bloomberg logoAsked at Bloomberg 

    " max Min 4, 3, 1 , 6, 7, 8 1 3 4 6 7 8 9 0 1 2 3 0 1 1 2 3 6 7 8 9 class MedianFinder{ std::priority_queue minHeap; std::priority_queue, greater> maxHeap; int numEleMaxheap = 0, numEleMinHeap = 0; public: void addNum( int n) { if(numEleMaxheap == numEleMinHeap ) { maxHeap.push(n); int maxofmaxheap = maxHeap.top(); maxHeap.pop(); "

    Ankush G. - " max Min 4, 3, 1 , 6, 7, 8 1 3 4 6 7 8 9 0 1 2 3 0 1 1 2 3 6 7 8 9 class MedianFinder{ std::priority_queue minHeap; std::priority_queue, greater> maxHeap; int numEleMaxheap = 0, numEleMinHeap = 0; public: void addNum( int n) { if(numEleMaxheap == numEleMinHeap ) { maxHeap.push(n); int maxofmaxheap = maxHeap.top(); maxHeap.pop(); "See full answer

    Software Engineer
    Coding
    +1 more
Showing 1-20 of 236