<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KVGHS6G" height="0" width="0" style="display:none;visibility:hidden"></iframe>

Figma计算机科学面试真题

职位分类
全部
数据相关
计算机科学
人工智能
产品经理
BQ
面试题
全部(10)
OOD(0)
Algorithm(0)
System Design(10)
高频题(0)
Math(0)
全部(10)
OOD(0)
Algorithm(0)
System Design(10)
高频题(0)
Math(0)
1.File System Permissions
2.Explain the Process Behind Accessing a URL
3.Design a Comment Thread Feature
4.Design a system that supports multi-user online editing of images and documents, including annotation of pure BQ code.
5.Improve the 'batchCommit' function for better performance
6.Optimize the 'apply layer' function to use minimal space
7.Real-time Update of Figma Comments
8.Design an Online PPT Template and Instance Generation System
9.Efficient Representation of Components in Figma
10.Design a Real-time Trending System
1. File System Permissions
Design and implement two APIs, init and get_fewest(), for a file system permission structure. The system consists of three data structures: Team, Folder, and Files. Each has an attribute containing a list of user IDs that have access to it. If a user has access to a higher-level entity (Team/Folder/File), they also have access to all its children. The init API initializes the system with given teams, folders, and files, and the get_fewest() API should return the fewest number of Teams/Folders/Files needed for a user to access all items they have permission to access. The data structures provided are as follows: Team: - uuid: Unique identifier - folder_ids: List of Folder IDs - file_ids: List of File IDs - user_ids: List of User IDs Folder: - uuid: Unique identifier - folder_ids: List of child Folder IDs - file_ids: List of child File IDs - user_ids: List of User IDs File: - uuid: Unique identifier - user_ids: List of User IDs The challenge includes dealing with the provided data structures that are not directly related, lack of type annotations, user_ids being lists instead of sets, and the requirement for the init function to store state without returning anything.
2. Explain the Process Behind Accessing a URL
Describe what happens in the background when you access a URL in a browser, such as www.1point3acres.com. This is an open discussion, and it is suggested to steer the conversation towards areas you are familiar with. Be prepared to discuss details such as DNS, CDN operations, communication protocols between services/components, service discovery, authentication, etc.
3. Design a Comment Thread Feature
Design a feature that allows users to start a comment thread by clicking anywhere on a page, similar to the functionality seen in Figjam. The task is not to design Google Docs but specifically the comment thread feature with the ability to click anywhere on the page to initiate it.
4. Design a system that supports multi-user online editing of images and documents, including annotation of pure BQ code.
Design a system that supports multi-user online editing of images and documents, including annotation of pure BQ code. Discuss the technologies and tools you would use, starting from 'user accesses the Figma website'. The interviewer rarely challenges you and will generally discuss around the areas you are familiar with. They will also delve into a project you have worked on.
5. Improve the 'batchCommit' function for better performance
In a coding interview, you implemented a 'batchCommit' function that was not optimal. You assumed that each 'batchCommit' would occur after at least two 'apply' operations. The interviewer asked for possible improvements. Explain how you would optimize the 'batchCommit' function to compress the deltas stored in the stack and enhance space efficiency.