Microsoft intern (China) online test
- The UI was extremely similar to LeetCode
- 3 questions; 1.5 hours
- Screen recording + web-cam recording
- No magnitude of input data specified
- Exception: The function signature was read-only and was ugly like 醜得跟?一樣
- I used C++, and yes the only version was c++95 or something :)
P1
- Given n numbers, put them into groups of k. In each group, all elements are distinct. k divides n. 總之可以整除
- Score := sum( max-min of each group )
- Return the min score
Example:
Input: 6, 2, {1,1,2,2,3,3}
by grouping them into {1,2}, {1,3}, {2,3}
we get (2-1)+(3-1)+(3-2) = 4
Returns: 4
P2
- Given a string (印象中舉例是數字,忘記有沒有specify element範圍),
- Each "shot" removes a consecutive palindrom in the string
- Shoot until there's no letter
- Return the min number of shots
Example:
Input: "124321"
Step 1. Shoot "4"
-> "12321"
Step 2. Shoot "12321"
-> ""
=> 2 shots in total
Returns: 2
P3
There is an island with n cities: from 0 to n-1.
- The first one is the starting point
- The last one is the ending point.
Originally, there are roads connecting the cities, and each of them takes 1 unit of time. Nonetheless, there are different kinds of cities:
- Type I: Normal ones
- Type II: Make you spend 2x units of time for the next 2 roads.
- Type III: Make you spend 0.5x units of time for the next 2 roads.
- Type IV: You'll die there. Don't go.
Output the path from starting with the minimum time.