First, I asked a system design question, one front end and one back end. Front end has many UIS, one UI has more than 10 MERs, back end has many processor, or processor has multiple processes and threads. How can we design this parallel distributed computing system to optimize independent tasks.
There is no way to design this system. You need experience to answer this question. I don't know why new grad should also ask about system design.
This involves the advantages and disadvantages of some parent and child processes and threads.
The first algorithm question is to give a string, such as aabbbcccdd, and ask how to compress it better. I gave a scheme a2b3c3d2 and used stringbuffer. Here is the experience: it is best to tell the Examiner: Let me think for a while, then give a better answer, and then leave the front blank when writing. After I wrote it, he said that not all the situations were optimized and asked which situations were not optimal. I said, for example, abcdefg, he asked how to change it. I said that if the accumulate number is 1, do not add numbers to stringbuffer.
During this period, I also asked why stringbuffer is used, and why is string immutable?
Another question is the linked list. I asked how to delete a node in the linked list, and then how to delete it if only the have access to the node is used. What should I do if the node is the last node. Is a basic problem.
Face Sutra: the first round of Bloomberg internship