
Infosys Interview Experience
Infosys Interview Experience for Experienced Software Engineer, Feb 2026
Software Engineer
Experienced
3 Months
Minimum 7 CGPA, no active backlogs, and basic knowledge of programming and computer science fundamentals. Having at least 1–2 projects on the resume is preferred. (Salary Package: 9 LPA)
Computer Science Engineering
3 Rounds
Application Experience
I applied through off-campus opportunities. After registering, I received an email for the online assessment. I cleared the assessment and was shortlisted for the interview round. The interview was conducted virtually, where both technical and HR questions were asked. The overall process was smooth and well-organized.
Preparation
Topics Prepared: Data Structures, Algorithms, OOPs, DBMS, Operating Systems, Computer Networks, SQL, Basic System Design
Preparation Tips
Tip 1: Practice DSA problems daily and focus on understanding concepts rather than memorizing solutions. Tip 2: Revise core subjects like OOPs, DBMS, and OS regularly before interviews. Tip 3: Take mock interviews to improve confidence and communication skills.
Resume Tips
Tip 1: Include 2–3 strong projects with a clear explanation of your role and the technologies used. Tip 2: Keep your resume concise (1 page) and avoid adding false or unnecessary information.
Interview Rounds (3)
Detailed breakdown of each evaluation round, questions asked, and candidate approaches.
Round 1 — Online Coding Interview
The first round was an online assessment conducted on the Infosys Wingspan platform. It consisted of MCQ questions and coding problems. The MCQs covered aptitude, logical reasoning, and basic computer science concepts like DBMS, OOPs, and OS. The coding section included 2–3 questions based on basic data structures and problem-solving skills. The overall difficulty level ranged from easy to hard, and the questions were manageable within the given time.
Problems & Questions Asked (3)
Second largest element in the array
You have been given an array/list 'ARR' of integers. Your task is to find the second largest element present in the 'ARR'. Note: a) Duplicate elements may be present. b) If no such element is present return -1. Example: Input: Given a sequence of five numbers 2, 4, 5, 6, 8. Output: 6 Explanation: In the given sequence of numbers, number 8 is the largest element, followed by number 6 which is the second-largest element. Hence we return number 6 which is the second-largest element in the sequence. Input format: The first line of input contains an integer ‘T’ denoting the number of test cases. The next ‘2*T’ lines represent the ‘T’ test cases. The first line of each test case contains an integer ‘N’ denoting the number of elements in the array. The second line of each test case contains ‘N’ space-separated integers denoting the elements in the array. Output Format: For each test case, print a single line containing a single integer denoting the second largest element in the array. The output of each test case will be printed in a separate line. Note: You are not required to print the expected output; it has already been taken care of, Just implement the function. Constraints: 1 <= T <= 100 1 <= N <= 5000 -10 ^ 9 <= 'SIZE' <= 10 ^ 9 Where ‘T’ is the total number of test cases, ‘N’ denotes the number of elements in the array and ‘SIZE’ denotes the range of the elements in the array. Time limit: 1 sec.
Step 1: I initialized two variables, first and second , to track the largest and second-largest elements. Step 2: I iterated through the array and updated the first variable whenever a larger element was found. Step 3: If the current element was smaller than first but greater than second , and not equal to first , I updated second . Step 4: After completing the iteration, the second variable contained the second-largest element.
Check If The String Is A Palindrome
You are given a string 'S'. Your task is to check whether the string is palindrome or not. For checking palindrome, consider alphabets and numbers only and ignore the symbols and whitespaces. Note : String 'S' is NOT case sensitive. Example : Let S = “c1 O$d@eeD o1c”. If we ignore the special characters, whitespaces and convert all uppercase letters to lowercase, we get S = “c1odeedo1c”, which is a palindrome. Hence, the given string is also a palindrome. Input format : The very first line of input contains an integer 'T' denoting the number of test cases. The first line of every test case contains the string 'S'. Output format : For each test case, print “Yes” if 'S' is a palindrome, and “No” otherwise. Print the output of each test case in a separate line. Note : You do not need to print anything, it has already been taken care of. Just implement the given function. Follow Up : Can you solve the problem using O(1) space complexity? Constraints : 1 <= T <= 100 1 <= Length(S) <= 10^4 Where 'T' denotes the number of test cases and 'S' denotes the given string. Time Limit : 1 sec
Step 1: I took the input string, removed all spaces, and converted it to lowercase to ensure uniform comparison. Step 2: I initialized two pointers: one at the beginning ( left ) and one at the end ( right ). Step 3: I compared the characters at both pointers. If they were not equal, I concluded that the string is not a palindrome. Step 4: If they matched, I moved the left pointer forward and the right pointer backward. Step 5: I continued this process until the pointers crossed each other. If all characters matched, the string is a palindrome.
Longest Increasing Subsequence
For a given array with N elements, you need to find the length of the longest subsequence from the array such that all the elements of the subsequence are sorted in strictly increasing order. Strictly Increasing Sequence is when each term in the sequence is larger than the preceding term. For example: [1, 2, 3, 4] is a strictly increasing array, while [2, 1, 4, 3] is not. Input format: The first line of input contains an integer 'N', representing the size of the array. The second line of input contains 'N' space-separated integers, representing the elements of the array. Output Format: The only output line contains one integer representing the length of the longest increasing subsequence. Note: You do not need to print anything; it has already been taken care of. Just implement the given functions. Input Constraints 1 <= N <= 10^5 -10^5 <= element <= 10^5 Time Limit: 1sec
Step 1: I understood that the problem is to find the length of the longest increasing subsequence in the array. Step 2: I used Dynamic Programming and created a DP array where each element represents the LIS ending at that index. Step 3: I initialized all values of the DP array to 1 since each element itself is a subsequence of length 1. Step 4: I used two loops, for each element I checked all previous elements. If the current element is greater, I updated DP[i] = max(DP[i], DP[j] + 1). Step 5: After filling the DP array, I took the maximum value from it as the final answer.
Round 2 — Face to Face
The technical interview started with my introduction, followed by questions based on my resume. I was asked to explain my projects in detail, including the technologies used and my contributions. The interviewer then asked questions from core subjects like OOPs, DBMS, and basic programming concepts. I was also given a few coding and logical questions to test my problem-solving skills. Overall, the questions were focused on fundamental concepts and practical understanding. The interviewer was supportive, and the discussion was interactive.
Problems & Questions Asked (2)
Concatenated Words
Ninja has given a list of unique words 'WORDS' of size 'N' and he wants to find all the words in the list formed after concatenating two or more words in the same list. As Ninja's best friend, he asked you to help him with the above problem. So, your task is to find all words in the list which are formed after concatenating two or more words in the same list. Print words in any order. Note: One word can be concatenated multiple times. It is guaranteed that there is at least one word in the list, which is formed after concatenating two or more words. Example: Input: 'WORDS' = ["ninjas", "coding", "codingninjas"] Output: ["codingninjas"] Only word "codingninjas' is formed after concatenating two or more words in the list i.e "coding" and "ninjas". Input Format : The first line of input contains an integer 'T', denoting the number of test cases. The first line contains an integer 'N' size of the list 'WORDS' for each test case. The next line contains 'N' words Output format : For each test case, print all the formed words after concatenating two or more words in the input list. Output for each test case will be printed in a separate line. Note : You don't need to print anything. It has already been taken care of. Just implement the given function. Constraints : 1 <= ‘T’ <= 10 2 <= 'N' <= 10^2 1 <= 'WORDS[i].LENGTH'<= 10^2 Time Limit: 1 sec
Step 1: I stored the frequency of all words in a hashmap to track how many times each word should appear. Step 2: I calculated the length of each word and the total length of the concatenated words. Step 3: I iterated through the string and, for each possible starting index, extracted substrings of word length. Step 4: I used another hashmap to track seen words and their counts while traversing. Step 5: If a word was not present in the original map or exceeded the expected frequency, I broke the loop. Step 6: If all words matched exactly, I added the starting index to the result.
Zig-Zag String
You are given a string ‘STR’ of size ‘N’ and an integer ‘M’ (the number of rows in the zig-zag pattern of ‘STR’). Your task is to return the string formed by concatenating all ‘M’ rows when string ‘STR’ is written in a row-wise zig-zag pattern. Example: N = 12, M = 3 and STR = ‘CODINGNINJAS’ There are three rows (‘M = 3’) in the zig-zag pattern. Row one contains ‘CNN’, row two contains ‘OIGIJS’, and row three contains ‘DNA’. After concatenating the three rows, we get the string ‘CNNOIGIJSDNA’. So, the answer is ‘CNNOIGIJSDNA’. Note: 1. The string ‘STR’ consists of capital letters only (i.e., characters from ‘A-Z’). Input format: The first line of input contains an integer ‘T’ denoting the number of test cases. The first line of each test case contains two space-separated integers, ‘N’ and ‘M’, denoting the size of string ‘STR’ and the number of rows in the zig-zag pattern, respectively. The second line of each test case contains a string ‘STR’. Output format: For each test case, return the string formed by concatenating all ‘M’ rows when string ‘STR’ is written in a zig-zag pattern. Note: You do not need to print anything; it has already been taken care of. Just implement the function Constraints: 1 <= T <= 10^2 1 <= N <= 10^3 1 <= M <= N ‘STR’ contains only ‘A-Z’ characters. Time Limit: 1 second
Step 1: I handled the edge case where the number of rows is 1 or greater than the string length, in which case the original string is returned. Step 2: I created a list of string builders equal to the number of rows to store characters row-wise. Step 3: I initialized a variable to track the current row and a direction flag to move up or down. Step 4: I iterated through each character of the string and appended it to the current row. Step 5: When I reached the top or bottom row, I reversed the direction. Step 6: After processing all characters, I combined all rows to form the final result string.
Round 3 — Face to Face
The third round included both technical and HR questions. I was asked to introduce myself and explain my projects. Questions from OOPs, DBMS, and programming were asked, along with some logical problems. In the HR part, I was asked about my strengths, weaknesses, and career goals. The interview was smooth and interactive.
Problems & Questions Asked (3)
Sudoku Solver
You have been given a 9x9 2d integer matrix 'MAT' representing a Sudoku puzzle. The empty cells of the Sudoku are filled with zeros, and the rest of the cells are filled with integers from 1 to 9. Your task is to fill all the empty cells such that the final matrix represents a Sudoku solution. Note: A Sudoku solution must satisfy all the following conditions- 1. Each of the digits 1-9 must occur exactly once in each row. 2. Each of the digits 1-9 must occur exactly once in each column. 3. Each of the digits 1-9 must occur exactly once in each of the 9, 3x3 sub-grids of the grid. You can also assume that there will be only one sudoku solution for the given matrix. Input Format: The input consists of 9 lines. Each line contains 9 single space-separated integers representing a row of the matrix. An empty cell is represented by 0. Constraints : Size of MAT is 9x9 0 <= MAT[i][j] <= 9 where an empty cell is given by 0 in the matrix. Output Format : The output is consists of 9 lines. Each line contains 9 single space-separated integers where the empty cells from the input matrix are replaced by some integers. Note You are not required to print anything, and it has already been taken care of. Just implement the function.
Step 1: I used a backtracking approach to try filling empty cells one by one. Step 2: I traversed the board to find an empty cell. Step 3: For each empty cell, I tried placing digits from 1 to 9. Step 4: Before placing a number, I checked if it is valid in the current row, column, and 3x3 sub-grid. Step 5: If valid, I placed the number and moved to the next empty cell recursively. Step 6: If no number worked, I backtracked by resetting the cell to empty and tried other options. Step 7: This process continued until the board was completely filled correctly.
Count And Say
Write as you speak is a special sequence of strings that starts with string “1” and after one iteration you rewrite the sequence as whatever you speak. Example : The first few iterations of the sequence are : First iteration: “1” As we are starting with one. Second iteration: “11” We speak “1” as “one 1” then we write it as “11” Third iteration: “21” We speak “11” as “Two 1” then we write it as “21” Fourth iteration: “1211” We speak “21” as “one 2, one 1” then we write it as “1211” Fifth iteration: “111221” We speak “1211” as “one 1, one 2, two 1” then we write it as “111221” Sixth iteration: “312211” We speak “111221” as “three 1, two 2, one 1” then we write it as “312211” You will be given a single positive integer N, Your task is to write the sequence after N iterations. Input Format: The first line of the input contains a single positive integer T, denoting the number of test cases. The first line of each test case contains a single integer N, denoting the number of iterations. Output Format: For each query print the string that represents the sequence after the nth iteration. Note: You don't have to print anything, it has already been taken care of. Just Implement the given function. Constraints: 1 <= T <= 10 1 <= N <= 30 Time Limit: 1 sec
Step 1: I started with the base case where the first term is "1". Step 2: For each next term, I read the previous string and counted consecutive repeating characters. Step 3: I built a new string by appending the count followed by the character. Step 4: I repeated this process until I reached the nth term.
Selection Perspective
I think I was rejected due to a lack of depth in the DSA round and not being able to explain my projects confidently.
Key Preparation Tips
Prepare DSA thoroughly.
Practice aptitude and puzzle-based questions.
Have at least two good projects on your resume.
Be prepared to explain your projects clearly.
Practice coding problems involving Arrays, Binary Search, DP and Recursion.
Prepare common HR questions such as Tell me about yourself and Who is your role model?
More Interview Experiences

Unthinkable
Software Engineer
Unthinkable Interview Experience for Software Engineer

Infosys
Specialist Programmer
Infosys privite limited Interview Experience for Fresher Specialist Programmer, Dec 2025

Infosys
Specialist Programmer