حل تمرین شبکه اجتمایی کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین شبکه اجتمایی کوئرا با پایتون
میخواهیم یک شبکهی اجتماعی ایجاد کنیم که امکان افزودن و جستوجو کردن افراد در آن وجود دارد. در این شبکهی اجتماعی، اطلاعات هر شخص شامل نام، جنسیت، سن و شناسهی آن شخص است. شناسهی هر شخص بین 5 تا 10 کاراکتر و شامل حروف کوچک و بزرگ الفبای انگلیسی و اعداد است و شناسهی افراد مختلف متفاوت است. دستورات این شبکه به شکل زیر هستند:
- Add
- Find
در دستور دوم ممکن است شناسهی نوشته شده معرف یک شخص نیست؛ در این صورت شما باید در صورت وجود، افرادی را که شناسهی آنها با کاراکترهای نوشته شده شروع میشود به عنوان نتیجهی جستوجو گزارش کنید. اگر تعداد این افراد بیشتر از 10 نفر بود، فقط 10 نفر اول (به ترتیب لغتنامهای) را گزارش کنید.
ورودی
در هر خط از ورودی برنامه، یکی دستورهای بالا وارد خواهد شد. تعداد دستورات از 100000 کمتر است.
خروجی
برای دستورهای Add عبارتی به شکل User added successfully را در خروجی چاپ کنید. برای دستورهای Find، نتایج به دست آمده را در خروجی چاپ کنید. برای اینکه نتایج دستورهای مختلف قابل تمایز شوند، در هر خط خروجی شمارهی دستور Find متناظر با آن را نیز چاپ کنید. همچنین اگر برای جستوجوی انجام شده نتیجهای یافت نشد، عبارت No user found را در خروجی قرار دهید. برای روشنتر شدن خروجیها به نمونه توجه کنید.
مثال
ورودی نمونه 1
Add Ali male 20 ali20ali Add Mohammad male 21 mohammadm Add Akbar male 30 akbar30 Find ali Add Maryam female 20 maryam20 Find mohammad21 Add Mahtab female 13 mahtab13 Add Maziar male 40 maziarAk Find ma
خروجی نمونه 1
User ali20ali added successfully User mohammadm added successfully User akbar30 added successfully 1 Ali male 20 ali20ali User maryam20 added successfully 2 No user found User mahtab13 added successfully User maziarAk added successfully 3 Mahtab female 13 mahtab13 3 Maryam female 20 maryam20 3 Maziar male 40 maziarAk
کد پایتون سوال تمرین شبکه اجتمایی
class Person: def __init__(self,username, gender, age, id) -> None: self.username= username self.gender= gender self.age= age self.id = id def __str__(self) -> str: return f"{self.username} {self.gender} {self.age} {self.id}" persons = dict() def add(username, gender, age, id): p = Person(username, gender, age, id) persons.update({id:p}) print(f"User {p.id} added successfully") def find(id): found_user = persons.get(id) if found_user: print(find.counter,found_user) else: persons_with_similar_id = sorted(list(filter(lambda x:x.startswith(id) ,persons.keys()))) if len(persons_with_similar_id): for person_id in persons_with_similar_id[:10]: print(find.counter,persons[person_id]) else: print(find.counter, 'No user found') find.counter+=1 find.counter=1 for i in range(100000): try: command = input().split() if command[0]== "Add": add(*command[1:]) elif command[0]=="Find": find(command[1]) except: break
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ