i
Calsoft
Work with us
Filter interviews by
Types of channels in Go and their use cases
Buffered channels: Allow multiple senders to send data without blocking until the buffer is full
Unbuffered channels: Synchronize goroutines by blocking sender until receiver is ready
Bidirectional channels: Allow both sending and receiving data
Receive-only channels: Restrict channel to only receive data
Send-only channels: Restrict channel to only send data
Concurrency is the ability to run multiple tasks simultaneously, achieving parallelism.
Go uses goroutines to achieve concurrency
Goroutines are lightweight threads managed by the Go runtime
Concurrency in Go is achieved using channels for communication between goroutines
Implement a stack using the given structure.
Create a struct with an array to store the stack elements and an index to keep track of the top element
Implement functions like push, pop, and peek to manipulate the stack
Ensure to handle stack overflow and underflow cases
Arrays have fixed size while slices are dynamic. Slices are references to arrays.
Arrays are declared with a fixed size while slices are declared without a size.
Slices are references to arrays and can be resized dynamically.
Arrays are passed by value while slices are passed by reference.
Slices have built-in functions like append() and copy() for manipulation.
Example: var arr [3]int = [3]int{1, 2, 3} and var sli []i...
Definition of struct, interface, method, and function.
Struct is a composite data type that groups together zero or more values with different types.
Interface is a collection of method signatures that a type can implement.
Method is a function that has a receiver argument.
Function is a block of code that performs a specific task and can be called from other parts of the program.
To create a package, define a new directory and add a file with package name and functions. My project is a web scraper.
Create a new directory with package name
Add a file with package name and functions
Import the package in main program
Use the functions in the package
Example: package name - scraper, functions - scrapeWebsite(url string) string
Example usage: import 'scraper', scraper.scrapeWebsite('https://example....
Implementing an interface with methods in Go
Define an interface with method signatures
Create a struct that implements the interface methods
Use the 'implements' keyword to associate the struct with the interface
Call the interface methods on the struct instance
Implement a stack using the given structure.
Create a struct with an array to store the stack elements and an index to keep track of the top element
Implement functions like push, pop, and peek to manipulate the stack
Ensure to handle stack overflow and underflow cases
Concurrency is the ability to run multiple tasks simultaneously, achieving parallelism.
Go uses goroutines to achieve concurrency
Goroutines are lightweight threads managed by the Go runtime
Concurrency in Go is achieved using channels for communication between goroutines
Types of channels in Go and their use cases
Buffered channels: Allow multiple senders to send data without blocking until the buffer is full
Unbuffered channels: Synchronize goroutines by blocking sender until receiver is ready
Bidirectional channels: Allow both sending and receiving data
Receive-only channels: Restrict channel to only receive data
Send-only channels: Restrict channel to only send data
I applied via Company Website and was interviewed in Jan 2023. There were 2 interview rounds.
Golang is a statically typed, compiled language designed for simplicity, efficiency, and strong concurrency support.
Simplicity: Go's syntax is clean and easy to learn, making it accessible for new developers.
Concurrency: Go's goroutines and channels simplify concurrent programming, allowing efficient multitasking.
Performance: Being a compiled language, Go offers high performance comparable to C and C++.
Strong Standard ...
Definition of struct, interface, method, and function.
Struct is a composite data type that groups together zero or more values with different types.
Interface is a collection of method signatures that a type can implement.
Method is a function that has a receiver argument.
Function is a block of code that performs a specific task and can be called from other parts of the program.
Implementing an interface with methods in Go
Define an interface with method signatures
Create a struct that implements the interface methods
Use the 'implements' keyword to associate the struct with the interface
Call the interface methods on the struct instance
To create a package, define a new directory and add a file with package name and functions. My project is a web scraper.
Create a new directory with package name
Add a file with package name and functions
Import the package in main program
Use the functions in the package
Example: package name - scraper, functions - scrapeWebsite(url string) string
Example usage: import 'scraper', scraper.scrapeWebsite('https://example.com')
Go is a statically typed, compiled language with a focus on concurrency and simplicity.
Go has a simpler syntax compared to other languages like Java or C++
Go has built-in concurrency support with goroutines and channels
Go has a garbage collector that automatically manages memory
Go compiles to machine code, making it faster than interpreted languages like Python
Go has a standard library that includes many useful package...
Top trending discussions
posted on 11 Mar 2022
I appeared for an interview before Mar 2021.
Round duration - 60 minutes
Round difficulty - Medium
21 students were shortlisted from the 1st MCQ round and in this round we were asked to write the codes (function only) of 3 questions in 1 hour time.
You are given a grid containing oranges where each cell of the grid can contain one of the three integer values:
Find the minimum time required to rot all fresh oranges in a grid.
Use Breadth First Search (BFS) to simulate the rotting process
Track the time taken to rot all oranges and return -1 if any fresh oranges remain
Handle edge cases like no fresh oranges or all oranges already rotten
Consider using a queue to efficiently process adjacent oranges
Given an array/list 'ARR' consisting of 'N' integers, your task is to find the majority element in the array. If there is no majority element present, return -1.
Find the majority element in an array, return -1 if no majority element exists.
Iterate through the array and keep track of the count of each element using a hashmap.
Check if any element's count is greater than floor(N/2) to determine the majority element.
Return the majority element or -1 if no majority element exists.
You are provided with a non-empty binary tree in which each node contains a non-negative integer value. Your task is to find and return the maximum ...
Find the maximum path sum between two leaf nodes in a binary tree.
Traverse the tree to find the maximum path sum between two leaf nodes.
Keep track of the maximum sum found so far.
Consider all possible paths between leaf nodes.
Handle cases where the tree has only a single leaf node.
Implement a recursive function to calculate the maximum path sum.
Round duration - 60 minutes
Round difficulty - Medium
This was a technical round with DSA based questions.
You are given a Singly Linked List of integers. The task is to find the N-th node from the end of the list.
If the given list is (1 -> -2 -&g...
Find the N-th node from the end of a Singly Linked List of integers.
Traverse the list to find the length L of the list.
Calculate the position of the N-th node from the beginning as L - N + 1.
Traverse the list again to reach the calculated position and return the node's value.
You are given a binary tree consisting of distinct integers and two nodes, X
and Y
. Your task is to find and return the Lowest Common Ancestor (LCA) of these two nodes...
Find the Lowest Common Ancestor (LCA) of two nodes in a binary tree.
Traverse the binary tree to find the paths from the root to nodes X and Y.
Compare the paths to find the last common node, which is the LCA.
Handle cases where one node is an ancestor of the other or when one node is the LCA itself.
You are given a string of length N
. Your task is to reverse the string word by word. The input may contain multiple spaces between words and may have leading o...
Reverse words in a string while handling leading/trailing spaces and multiple spaces between words.
Split the input string by spaces to get individual words
Reverse the list of words
Join the reversed words with a single space in between
Handle leading/trailing spaces by stripping them before and after reversing
Round duration - 60 minutes
Round difficulty - Easy
Technical Interview round with questions based on DSA
Given 'N' subjects, each containing a certain number of problems, and 'K' friends, assign subjects to friends such that each subject goes to exactly one friend, maintain...
Assign subjects to friends to minimize maximum workload, find minimum time for most loaded friend.
Sort subjects in descending order
Assign subjects to friends one by one until all subjects are assigned
The maximum workload will be the sum of problems assigned to the friend with the most problems
Return the maximum workload as the minimum time required
Grammar in compiler design defines the syntax and structure of a programming language.
Grammar specifies the rules for forming valid statements in a programming language.
It consists of a set of production rules that define how valid programs can be constructed.
There are different types of grammars such as context-free grammar, regular grammar, etc.
Example: In C programming language, the grammar specifies that a for loop...
A token in compiler design is a basic unit of syntax that the compiler can understand and process.
Tokens are the smallest units of a program that are meaningful to the compiler.
Examples of tokens include keywords, identifiers, operators, and punctuation symbols.
Tokens are generated by the lexical analysis phase of the compiler.
Tokens are used by the parser to build the abstract syntax tree of the program.
Round duration - 60 minutes
Round difficulty - Easy
Technical round with questions on DSA and Compiler Design mainly. He told me that you’ll be having your final HR round in some time. I knew that I was going well because he seemed to be quite satisfied with my answers.
You are given an arbitrary binary tree consisting of N nodes, each associated with an integer value from 1 to 9. Each root-to-leaf path can be considered a number formed by concat...
Find the total sum of all root to leaf paths in a binary tree formed by concatenating node values.
Traverse the binary tree from root to leaf nodes, keeping track of the current path sum
Add the current path sum to the total sum when reaching a leaf node
Use modulo (10^9 + 7) to handle large outputs
A regular language is a language that can be recognized by a finite automaton.
Regular languages can be described by regular expressions.
Regular languages are closed under union, concatenation, and Kleene star operations.
Examples of regular languages include the set of all strings over an alphabet that contain an even number of 'a's.
NP problems are decision problems that can be verified in polynomial time, while NP-Hard problems are at least as hard as the hardest problems in NP.
NP problems can be verified in polynomial time but not necessarily solved in polynomial time.
NP-Hard problems are at least as hard as the hardest problems in NP, but may not be in NP themselves.
Examples of NP problems include the subset sum problem and the traveling salesm...
Round duration - 30 minutes
Round difficulty - Easy
That was the round for which I’ve been waiting for hours
She was very friendly and nice to talk to. It didn’t seem that I was talking to the HR. It was more like talking to a friend. Finally we discussed about the pay-scale and work culture in Accolite.
Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.
Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.
posted on 27 Jul 2022
I applied via Campus Placement and was interviewed before Jul 2021. There were 5 interview rounds.
Round 1 was about 60 mins long. Basic Aptitude questions along with Programming MCQ
Round 2 had 2 coding questions with a time limit of 60mins. Intermediate level problem solving
knowledge is neccessary.
posted on 12 Jun 2021
I applied via Campus Placement and was interviewed in Dec 2020. There was 1 interview round.
Convert given no to corresponding excel no.
Excel no starts from 1 and goes up to 16384
Excel no is calculated using column and row numbers
For example, 1 corresponds to A, 27 corresponds to AA, 28 corresponds to AB, and so on
Find unique characters in a window of k size in a string.
Use a sliding window approach.
Maintain a hash table to keep track of character frequency.
Remove characters from hash table as the window slides.
Java program to find shortest distance between 2 nodes in an array of strings
Create a method that takes in the array of strings and the two nodes as parameters
Use a map to store the index of each node in the array
Calculate the distance between the two nodes using their indices in the array
OOPs concept is a programming paradigm based on the concept of objects, which can contain data in the form of fields and code in the form of procedures.
OOPs stands for Object-Oriented Programming
Key concepts include classes, objects, inheritance, polymorphism, and encapsulation
Classes are blueprints for creating objects, which are instances of classes
Inheritance allows a class to inherit properties and behavior from an...
posted on 16 Sep 2021
I appeared for an interview in Dec 2020.
Round duration - 20 Minutes
Round difficulty - Easy
Given a binary tree, your task is to print the left view of the tree.
The input will be in level order form, with node values separated by a...
Print the left view of a binary tree given in level order form.
Traverse the tree level by level and print the first node of each level (leftmost node).
Use a queue to perform level order traversal.
Keep track of the current level and print the first node encountered at each level.
Round duration - 45 Minutes
Round difficulty - Easy
It was a technical round held on skype.
You are provided with two singly linked lists containing integers, where both lists converge at some node belonging to a third linked list.
Your task is to determine t...
Find the node where two linked lists merge, return -1 if no merging occurs.
Traverse both lists to find their lengths and the difference in lengths
Move the pointer of the longer list by the difference in lengths
Traverse both lists simultaneously until they meet at the merging point
Given a Singly Linked List of integers, your task is to reverse the Linked List by altering the links between the nodes.
The first line of input is an intege...
Reverse a singly linked list by altering the links between nodes.
Iterate through the linked list and reverse the links between nodes
Use three pointers to keep track of the current, previous, and next nodes
Update the links between nodes to reverse the list
Return the head of the reversed linked list
You are provided with 'K' different arrays/lists, each sorted in ascending order. Your task is to merge all these arrays/lists into one sorted array/list in ascendi...
Merge K sorted arrays into one sorted array in ascending order.
Iterate through all arrays/lists and merge them into one sorted array using a priority queue or merge sort algorithm.
Ensure to handle edge cases like empty arrays/lists or arrays/lists with different sizes.
Time complexity can be optimized by using a min-heap or priority queue to efficiently merge the arrays/lists.
Round duration - 60 Minutes
Round difficulty - Easy
It was also a technical round held on Google meet.
Ninja has been given an array, and he wants to find a subarray such that the sum of all elements in the subarray is maximum.
A subarray 'A' is considered greater than a...
The task is to find the subarray with the maximum sum in a given array.
Iterate through the array and keep track of the current sum and maximum sum seen so far.
If the current sum becomes negative, reset it to 0 as it won't contribute to the maximum sum.
Compare the maximum sum with the sum of the current subarray to update the result.
Handle cases where all elements are negative by returning the maximum element in the arr...
Tip 1 : Maintain detail notes
Tip 2 : Revise the notes
Tip 1 : Mention the skills only which you are aware of
Tip 2 : Improve your resume
posted on 6 Mar 2024
I applied via Campus Placement
Aptitude and analytical
Coding Data structure and algorithms
posted on 29 Mar 2024
based on 3 interview experiences
Difficulty level
Duration
Development Engineer
320
salaries
| ₹4.8 L/yr - ₹10 L/yr |
Senior Development Engineer
227
salaries
| ₹9 L/yr - ₹18 L/yr |
Softwaretest Engineer
132
salaries
| ₹3 L/yr - ₹6.7 L/yr |
Principal Development Engineer
123
salaries
| ₹16.4 L/yr - ₹28.1 L/yr |
Senior Software Engineer
113
salaries
| ₹11.6 L/yr - ₹20.8 L/yr |
ITC Infotech
CMS IT Services
KocharTech
Xoriant