Coming Soon
A Learner Sharing its Learning :)
Monday, 27 December 2021
Monday, 28 January 2019
Pine Labs Interview Experience
Process: 3 Technical Round + 1 Manager Round + 1 HR
Round 1:
{
char* name;
int age;
vector<Subject*> optionSubject;
}
where Subject is defined as below
struct Subject
{
char* name;
int marks;
}
Round 2:
Round 4 (CTO Round):
Round 1:
- Write Code to find meeting point in Y Linked List ( 7 in below list)
- Write your own Copy constructor, assignment operator for below class
{
char* name;
int age;
vector<Subject*> optionSubject;
}
where Subject is defined as below
struct Subject
{
char* name;
int marks;
}
Round 2:
- Write Code to find LCA of Binary Search Tree of given node & if node is not there return NULL.
- Design Logger class considering multithreading aspect (ensuring Race condition is avoided)
- Design Memory Manager ( Define Data structure of it and handle memory allocation & deallocation )
- Asked me Round 1 question of Y List again. After I told him that its already asked he modified the question by introducing a loop in starting & then find the meeting pointed i.e 7
- Questions related to C++
- What is static keyword , why we need static data member & member functions.
- What is static const ? Where do you define in class & initialize it.
- Can Destructor throw an exception?
- Can Constructor throw an exception? Can we use the data member already initialized before throwing exception?
Round 4 (CTO Round):
- Asked me to introduced myself & explain projects i have worked upon. Then he asked few questions related to project.
- Write Code of thread Safe Singleton class.
- General Discussion.
- Explained about the company, its growth story different policies & work environment.
- General Questions.
- Current CTC & Expectation.
Labels:
C++,
Data Structures,
Design,
Interview,
Pine Labs,
Pine Labs Interview Experience
Friday, 28 December 2018
Friday, 15 June 2018
Comma Operator inside for loop Condition in C++
You may have used Comma operator in initilialization and increment part of for loop like below
for(init;condition;increment) --> for(int i=0,j=5;i<j;i++,j--)
But can we used Comma operator inside for loop condition ?
The answer is Yes but it behave bit differently.
Predict the output of below program
Output:
As Comma operator is a binary operator it evaluates first operand but discards its result and then evaluates the second operand and returns its result.
In above example , for loop will run till second condition is true (j<6 ) and discards the first condition.
But what if we use comma operator in assignment like below
int a=5,b=7,c;
c=a,b;
Here c will be equal to a (5) as assignment has higher precedence than comma operator.
Please comment if you find anything incorrect.
for(init;condition;increment) --> for(int i=0,j=5;i<j;i++,j--)
But can we used Comma operator inside for loop condition ?
The answer is Yes but it behave bit differently.
Predict the output of below program
void commaOperator() { int i=0,j=0; cout<<"Using && inside for loop Condition"<<endl; for(;i<4&&j<6;) { cout<<i<<" "<<j<<endl; i++; j++; } cout<<"Using comma inside for loop Condition "<<endl; i=0,j=0; for(;i<4,j<6;) { cout<<i<<" "<<j<<endl; i++; j++; } }
Output:
Using && inside for loop Condition 0 0 1 1 2 2 3 3 Using comma inside for loop Condition 0 0 1 1 2 2 3 3 4 4 5 5
As Comma operator is a binary operator it evaluates first operand but discards its result and then evaluates the second operand and returns its result.
In above example , for loop will run till second condition is true (j<6 ) and discards the first condition.
But what if we use comma operator in assignment like below
int a=5,b=7,c;
c=a,b;
Here c will be equal to a (5) as assignment has higher precedence than comma operator.
Please comment if you find anything incorrect.
Saturday, 26 May 2018
Find Consecutive Elements in Unsorted Array in O(n) - C++ Code
#include<iostream> #include<set> int findConsecutiveElements(int arr[], int n) { std::set<int> s; int ans = 0; for (int i = 0; i < n; i++) s.insert(arr[i]); for (int i=0; i<n; i++) { if (s.find(arr[i]-1) == s.end()) { int j = arr[i]; while (s.find(j) != s.end()) j++; ans = std::max(ans, j - arr[i]); } } return ans; } int main() { int arr[] = {1,21, 24, 25, 9, 3, 11, 4, 20, 22,23}; int n = sizeof arr/ sizeof arr[0]; std::cout << "Length of the Longest consecutive elements is " << findConsecutiveElements(arr, n); return 0; }
Labels:
C++,
Consecutive Elements in Unsorted Array,
O(n)
Thursday, 30 November 2017
Kth smallest element in a BST - C++ Code
Do inorder Traversal of BST and count number of elements traversed till now . As inorder traversal gives us the element in sorted Order, when count reaches k , we break out and Print the element.
/** * Definition for Binary Search Tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * }; */ int kthsmallest(TreeNode* root, int k) { if(root==NULL) return 0; stack<TreeNode*> s; bool complete=false; TreeNode* cur=root; int count=0; int val=0; while(!complete) { if(cur!=NULL) { s.push(cur); cur=cur->left; } else { if(!s.empty()) { count++; cur=s.top(); s.pop(); if(count==k) { val=cur->val; break; } cur=cur->right; } else complete=true; } } return val; }
Please comment if you find anything incorrect.
Monday, 6 November 2017
First Non Repeating Character in String
#include<iostream> #include<string> #include<memory> #include<climits> #define NUMBER_OF_CHARS 256 using namespace std; struct CountIndex { int count; int index; }; char getFirstNonRepeatngCharacter(const string& str) { char ch=' '; unique_ptr<CountIndex[]> ci(new CountIndex[256]()); //Can also use shared_ptr //shared_ptr<CountIndex> ci(new CountIndex[256](),std::default_delete<CountIndex[]>()); for(auto& it:str) { ci.get()[it].count++; if(ci.get()[it].count==1) ci.get()[it].index= &it - &str[0]; else ci.get()[it].index= ci.get()[it].index; } int maxIndex=INT_MAX; for(int it=0;it<NUMBER_OF_CHARS;it++) { if(ci.get()[it].count==1 && ci.get()[it].index <maxIndex) { maxIndex= ci.get()[it].index; } } return maxIndex!=INT_MAX?str[maxIndex]:' '; } int main() { string str ; cin>>str; char ch=getFirstNonRepeatngCharacter(str); if(ch !=' ') cout<<" First Non repeating Character is "<< ch; else cout<<" No Repeating Character Exist "; }
Subscribe to:
Posts (Atom)