در این سوال میخواهیم بخشی شبیه به سایت دیوار را طراحی کنیم. قرار است تعدادی کاربر در سایت ثبت نام کنند و هر کدام تعدادی آگهی روی این سایت قرار دهند. هر کاربر میتواند آگهی را به لیست علاقهمندیهایش اضافه کند. همچنین کاربری ممکن است بخواهد لیست آگهیهایی را که پست کرده یا به علاقهمندیهای خودش اضافه کرده را ببیند. به شما لیستی از دستورهای این سیستم داده میشود و از شما میخواهیم این دستورها را به درستی پاسخ دهید.
register
🔗فرم کلی این دستور به صورت register <username>
است و به معنی این است که یک کاربر با نام کاربری <username>
میخواهد در دیوار ثبت نام کند.
invalid username
را چاپ کنید.registered successfully
را چاپ کنید.add_advertise
🔗فرم کلی این دستور به صورت add_advertise <username> <title>
است و به معنی این است که کاربر <username>
میخواهد آگهی با عنوان <title>
را در دیوار منتشر کند.
invalid username
را چاپ کنید.invalid title
را چاپ کنید.posted successfully
را چاپ کنید.rem_advertise
🔗فرم کلی این دستور به صورت rem_advertise <username> <title>
است و به معنی این است که کاربر <username>
میخواهد آگهی با عنوان <title>
را که قبلاً در دیوار منتشر کرده را پاک کند.
invalid username
را چاپ کنید.invalid title
را چاپ کنید.access denied
را چاپ کنید.removed successfully
را چاپ کنید.list_my_advertises
🔗فرم کلی این دستور به صورت list_my_advertises <username>
است و به معنی این است که یک کاربر با نام کاربری <username>
میخواهد لیست آگهیهایی که منتشر کرده را مشاهده کند.
invalid username
را چاپ کنید.add_favorite
🔗فرم کلی این دستور به صورت add_favorite <username> <title>
است و به معنی این است که کاربر <username>
میخواهد آگهی با عنوان <title>
را به لیست علاقهمندیهایش اضافه کند.
invalid username
را چاپ کنید.invalid title
را چاپ کنید.already favorite
را چاپ کنید.added successfully
را چاپ کنید.rem_favorite
🔗فرم کلی این دستور به صورت rem_favorite <username> <title>
است و به معنی این است که کاربر <username>
میخواهد آگهی با عنوان <title>
را از لیست علاقهمندیهایش حذف کند.
invalid username
را چاپ کنید.invalid title
را چاپ کنید.already not favorite
را چاپ کنید.removed successfully
را چاپ کنید.list_favorite_advertises
🔗فرم کلی این دستور به صورت list_favorite_advertises <username>
است و به معنی این است که یک کاربر با نام کاربری <username>
میخواهد لیست آگهیهایی که به علاقهمندیهایش اضافه کرده را مشاهده کند.
invalid username
را چاپ کنید.add_advertise
🔗فرمت کلی این دستور به صورت add_advertise <username> <title> [<tag>]
خواهد بود و به معنی این است که کاربر <username>
میخواهد آگهی با عنوان <title>
را با برچسب <tag>
منتشر کند.
list_my_advertises
🔗فرم کلی این دستور به صورت list_my_advertises <username> [<tag>]
است و به معنی این است که یک کاربر با نام کاربری <username>
میخواهد لیست آگهیهایی که با برچسب <tag>
منتشر کرده را مشاهده کند.
توجه کنید اگر مانند فاز اول، همچین کوئری داده شد ولی <tag>
نداشت باید بدون در نظر گرفتن برچسبها همهی آگهیها را نشان دهید.
list_favorite_advertises
🔗فرم کلی این دستور به صورت list_favorite_advertises <username> [<tag>]
است و به معنی این است که یک کاربر با نام کاربری <username>
میخواهد لیست آگهیهایی که برچسب <tag>
را دارند و به علاقهمندیهایش اضافه کرده را مشاهده کند.
توجه کنید اگر مانند فاز اول، همچین کوئری داده شد ولی <tag>
نداشت باید بدون در نظر گرفتن برچسبها همهی آگهیها را نشان دهید.
<username>
یک رشته که نشاندهندهی «نام کاربری» است، داده میشود.<title>
یک رشته که نشاندهندهی «عنوان آگهی» است، داده میشود._
، حروف کوچک یا بزرگ انگلیسی است و طول آن حداکثر ۲۰ است.در سطر اول ورودی، عدد صحیح و مثبت داده میشود. در سطر بعدی، در هر سطر یک دستور داده میشود.
خروجی سطر دارد، در هر سطر پاسخ مناسب به هر دستور چاپ میشود.
برای کمک به دیباگ برنامهی شما، نام فایل تستی که به سوال کد داده شده، در اینجا آمده است.