You are working on a large database that holds information about several different aspects of your company, such as customers, partners, prospects, employees, products, etc. Every user in the system has access to one or more types of data. For instance, a human resources worker might only have access to employee records, while a sales person might have access to prospects, customers, and products.
You are in charge of writing reports that summarize large volumes of this information. However, since the reports may contain more than one type of data, you need to be determine which users should be allowed to view that report. In this case, assume that a user has permission to view a report if and only if they have permission to view all of the types of data contained in that report.
You are given a list of usernames in String userNames. You are given a list of what data types each user can access in String allowedData, where each element of allowedData is a space-delimited list of the permitted data types for that user. Finally, you are given a String reportData, where each element of report indicates a type of data included in the report.
You are to return a String indicating the user names of those users who should be able to access the report. The list should be returned in alphabetical order.