注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
Karat interview had three parts
Part 1
You are a developer for a university. Your current project is to develop a system for students to find courses they share with friends. The university has a system for querying courses students are enrolled in, returned as a list of (ID, course) pairs.
Write a function that takes in a collection of (student ID number, course name) pairs and returns, for every pair of students, a collection of all courses they share.
Examples:
Sample Input:
enrollments1 = [
["58", "Linear Algebra"],
["94", "Art History"],
["94", "Operating Systems"],
["17", "Software Design"],
["58", "Mechanics"],
["58", "Economics"],
["17", "Linear Algebra"],
["17", "Political Science"],
["94", "Economics"],
["25", "Economics"],
["58", "Software Design"],
]
Sample Output (pseudocode, in any order):
find_pairs(enrollments1) =>
{
"58,17": ["Software Design", "Linear Algebra"]
"58,94": ["Economics"]
"58,25": ["Economics"]
"94,25": ["Economics"]
"17,94": []
"17,25": []
}
Additional test cases:
Sample Input:
enrollments2 = [
["0", "Advanced Mechanics"],
["0", "Art History"],
["1", "Course 1"],
["1", "Course 2"],
["2", "Computer Architecture"],
["3", "Course 1"],
["3", "Course 2"],
["4", "Algorithms"]
]
Sample output:
find_pairs(enrollments2) =>
{
"1,0":[]
"2,0":[]
"2,1":[]
"3,0":[]
"3,1":["Course 1", "Course 2"]
"3,2":[]
"4,0":[]
"4,1":[]
"4,2":[]
"4,3":[]
}
Sample Input:
enrollments3 = [
["23", "Software Design"],
["3", "Advanced Mechanics"],
["2", "Art History"],
["33", "Another"],
]
Sample output:
find_pairs(enrollmen_____| \ | | /
________ / \-->| Logic |-+ _________
| | / __________ |________| \ | |
| Creative | / | | \--->| Compilers |
| Writing |-+----->| Databases | |_______|
|______| \ |________|-\ _____________________
\ \ | |
\--------------------+-->| System Administration |
|_____________________|
Sample input 2:
all_courses_2 = [
["Course_3", "Course_7"],
["Course_0", "Course_1"],
["Course_1", "Course_2"],
["Course_2", "Course_3"],
["Course_3", "Course_4"],
["Course_4", "Course_5"],
["Course_5", "Course_6"],
]
Sample output 2 (in any order):
["Course_2", "Course_3"]
Complexity analysis variables:
n: number of pairs in the input
c: number of courses in the input |