Tip 1 : Prepare System Design
Tip 2 : Practice DSA Questions properly
Tip 3 : Practice OOPS and DBMS Concepts
Tip 1 : Your Resume should consist mainly of skills, projects, and achievements. Projects would play a crucial part in your interview and you should have at least one most relevant and good project that shows how strong your concepts are in development.
Tip 2 : The most important tip is that never lie on your resume If you have worked upon some technology for the project part only and don't know the proper depth you could write basics only in your resume.
This round had 3 coding question ranging from easy - medium difficulty so was able to complete them pretty quickly.



Input: 'arr' = [1,1,2,2,4,5,5]
Output: 4
Explanation:
Number 4 only appears once the array.
Exactly one number in the array 'arr' appears once.
Take the first number, then find its last occurrence or upper bound using binary search.
Then count it as one unique element.
Place pointer to next different element and repeat the same step.



‘?’ – matches any single character
‘*’ – Matches any sequence of characters(sequence can be of length 0 or more)
Case 1: The character is ‘*’ . Here two cases arises as follows:
We can ignore ‘*’ character and move to next character in the Pattern.
‘*’ character matches with one or more characters in Text. Here we will move to next character in the string.
Case 2: The character is ‘?’
We can ignore current character in Text and move to next character in the Pattern and Text.
Case 3: The character is not a wildcard character
If current character in Text matches with current character in Pattern, we move to next character in the Pattern and Text. If they do not match, wildcard pattern and Text do not match.



1. Start checking from the end of the linked list and not from the beginning. For example, if the linked list is ( a, b, a ,b, a) and the string is equal to “aba” , then the answer should be (a b), not (b a).
2. After removing an occurrence check again for new formations.
We make a copy of our string s (x in code) and then iterate over the string s.
Now in the current iteration if j is greater than or equal to m that means that we have seen at least m elements, so we can check whether the substring of last m characters is equal to part or not. If it is equal, we reduce the variable 'j' by m showing that we have removed this substring and now we will overwrite the characters from index j.
Finally we will return the substring of x of length j.
This round was take by a senior engineer who asked a lot of questions on resume, oops, tech stack used, why a particular thing is used in project, what could be alternatives to that and one system design question as well.
Design a URL Shortener
Tip 1 : Prepare for these questions as well as generally they not asked for intern position but you never know.
Tip 2 : Explain the approach before moving to solution.
Tip 3 : Keep the interviewer engaged.

Here's your problem of the day
Solving this problem will increase your chance to get selected in this company
What is recursion?