Saturday, 1 February 2020

Interview question for Experienced professional in FullStack with .Net


Interview question for Experienced professional in .Net, C#, OOPs, Angular, SQL, MVC, and Web API
  1. What is memory management?
  2. How .net manages memory?
  3. How Garbage collector identifies that which object it needs to pick next?
  4. What are generation in context to GC?
  5. How generations are maintained by GC?
  6. What is memory leak?
  7. How to prevent memory leak?
  8. What is finalizer?
  9. How finalizer is called and How it works?
  10. How Dispose works?
  11. What is stack and Heap? How objects are referenced in stack and Heap?
  12. How .NET CLR manages file operations?
  13. Managed and Unmanaged resources?
  14. How Dictionary stores data?
  15. Question related to current project
  16. How you maintain cache?
  17. In-memory cache or Out-memory cache
  18. How data is transferred to hardware?
  19. How layered architecture handle request and response?
  20. How hardware interacts with software?

SQL
  1. Difference between SProc and function?
  2. When should we create function? (Real life example)
  3. What is foreign key?(Primary key is covered in this question)
  4. What are indexes?
  5. Where indexes are stored? In-memory or out-memory.
  6. Is there any user defined type in SQL?
  7. What are triggers?
  8. Difference between EF and ADO.Net. Which one is better? (This is a debate)

MVC & Web API
  1. What is routing?
  2. What is bundling?
  3. Why bundling is needed? (This question  required knowledge of how browser handle script)
  4. What are filters?
  5. Difference between MVC and ASP.Net

Angular
  1. What is routing?
  2. How to send data form one partial view to another?
  3. How Angular CLI starts building the project after ctlt + s press but not when no changes are made
  4. What are watchers?
  5. What is digest cycle?
  6. Any thoughts related to Angular? (Any would do)

C#
  1. What is Abstract class?
  2. Why should we use it?
  3. Where Abstract class is used in smart devices?
  4. Real world example of Abstract class?
  5. What are extension methods?
  6. How to stop extension of methods?

OOPs
  1. What is encapsulation?
  2. What is Abstraction?
  3. Inheritance? (This answer should cover polymorphism also)
  4. Questions relate to DS and algorithms?
  5. Which sorting algorithm is faster?


How to find palindrome in a given string (Effective way)



Finding longest palindrome in a substring of a given string

Most famous and tricky question asked in a interview are related to palindrome
  1.  Check whether the given string is palindrome? 
  2.  Find the longest palindrome in a substring of a given string?
  3.  Find all possible palindrome in given string?

These are the common question asked around palindrome.
Everybody knows answers to these questions. Every developer can code the above problem statements.
Its not like interviewer is expecting that you cannot write code for these problems. He expects to see a solution which is fast and robust. That’s where you get an edge.
There are several ways to do this and all are correct. I am showing one of them which I think is more performance oriented and robust.
So, let’s proceed with logic
Consider a string ‘ssssbbssbbss’ as you can see easily that longest palindrome substring is ‘ssbbssbbss’
Now let’s create a logic
Step 1:
Convert it to charArray()

Now create a table



if I compare character at location 0 with 0 it will give me true
similarly, for 1,1 | 2,2 | 3,3, | and so on
let’s fill the table



Step 2:
Now start comparing characters with 0 to 1, 1 to 2, 2 to 3 and so on and fill the table



Now our basic record is generated. This will come handy later
Step 3:
Now will start comparing characters that are at least 2 indices apart and so one until first and last character and we keep filling this table until the very last column and reuse the same data
If we start comparing character at index 0 with character at index 2
Int i = 0; Int j = 2;
i.e. if arr[i] == arr[j]
after this add 1 in i and subtract 1 from j
and before we start comparing remember we already have data for this
Yes, i has value 1 and j has value 1 which is a palindrome and we already know that.
So we iterating through the step 3 and we’ll find our result.
Now after going through there 3 steps we can say that there is a rule
Rule
              For a string to be considered as palindrome, all it’s substring should be palindrome as well.
Now how’d you implement this in code.
Here it is –
public class Palindrome
{
       private string value;
       private int Length = 0;
       int[,] table = null;
       char[] s = null;
       public int stringLength = 0;
       public int minCount = 0;
       public Palindrome(string palindromeString)
       {
              value = palindromeString;
              Length = value.Length;
              table = new int[Length, Length];
              s = value.ToCharArray();
              Initialize();
       }

       private void Initialize()
       {
              for (int i = 0; i < Length; i++)
              {
                     table[i, i] = 1; 
                     if (i != Length - 1)
                     {
                            if (s[i] == s[i + 1])
                            {
                                   table[i, i + 1] = 1;
                            }
                            else {
                                 table[i, i + 1] = -1;
                            }
                      }
              }
       }

       public string FindLongestPalindromInString()
       {
              for (int i = 0; i < Length; i++)
              {
                    for (int j = i+2; j < Length; j++)
                    {
                          table[i, j] = FindAllPalindrome (i, j);
                          if (table[i, j] == 1 && j-i > stringLength)
                          {
                                 stringLength = j-i;
                                 minCount = i;
                          }
                    }
               }
               return value.Substring(minCount, (stringLength)+1);

       }

       private int FindAllPalindrome(int p, int q)
       {
             int result = 0;
             if (table[p, q] == 1)
            {
                  result = 1;
            }
             else if (table[p, q] == -1)
             {
                    result = -1;
             }
             else
             {
                    if (s[p] == s[q])
                    {
                          result = FindAllPalindrome(p + 1, q - 1);
                    }
                    else { result = -1; }
             }
             return result;
       }
}

Here's the result



I hope you find it helpful.
I know there are lot of things which I can do to make this code better.
Happy reading (ta-ta).

Send All Azure App Insights Or Logs Data To Tool Like Datadog

  Introduction Microsoft Azure provides a variety of insights and monitoring logs that you can monitor to check the state of a resource and ...