اسمها
کریم به اسمهایی علاقه دارد که تعداد حروف متمایز در آنها زیاد باشد. برای مثال، اسم karim دارای پنج حرف متمایز (k، a، r، i و m) و اسم abbas دارای سه حرف متمایز (a، b و s) است.
کریم در انتخاب اسم از بین n اسم پیشنهادی دچار تردید شدهاست. او میخواهد اسمی را انتخاب کند که بیشترین تعداد حروف متمایز را داشته باشد. وظیفهی شما این است که به او کمک کنید و بیشترین تعداد حروف متمایز در بین اسمهای دادهشده را پیدا کنید.
📥 ورودی
خط اول ورودی شامل یک عدد صحیح مثبت n است که نشاندهندهی تعداد اسمهای پیشنهادی است. در n خط بعدی، در هر خط یک اسم پیشنهادی بهعنوان رشتهای با حداکثر ۲۰ حرف از حروف کوچک انگلیسی آمدهاست.
📤 خروجی
در تنها خط خروجی، یک عدد صحیح چاپ کنید که برابر با بیشترین تعداد حروف متمایز در بین اسمهای ورودی باشد.
🎯 نمونه
ورودی ۱
4
ali
karim
abbas
mohammad
خروجی ۱
5
اسم ali دارای ۳ حرف متمایز، اسم karim دارای ۵ حرف متمایز، اسم abbas دارای ۳ حرف متمایز و اسم mohammad دارای ۵ حرف متمایز است. بیشترین تعداد حروف متمایز در بین این اسمها ۵ است.
ورودی ۲
2
ab
aaaaa
خروجی ۲
2
اسم ab دارای ۲ حرف متمایز و اسم aaaaa دارای ۱ حرف متمایز است. بیشترین تعداد حروف متمایز ۲ است.
💡 چالشهای حل تمرین
چگونه تعداد حروف متمایز یک اسم را بهدست آوریم؟
برای محاسبهی تعداد حروف متمایز در یک اسم (رشته) مانند s، میتوانید از روش زیر استفاده کنید:
distinct_chars = ''
for char in s:
if char not in distinct_chars:
distinct_chars += char
یک رشتهی خالی به نام distinct_chars ایجاد کنید. سپس، تکتک حروف اسم s را پیمایش کنید. برای هر حرف، بررسی کنید که آیا آن حرف در رشتهی distinct_chars وجود دارد یا خیر. اگر وجود نداشت، آن حرف را به انتهای رشته distinct_chars اضافه کنید. در پایان پیمایش اسم s، طول رشتهی distinct_chars برابر با تعداد حروف متمایز در اسم s خواهد بود.
چگونه بیشترین تعداد حروف متمایز را بین اسمها پیدا کنم؟
برای پیدا کردن بیشترین تعداد حروف متمایز، میتوانید یک متغیر به نام max_distinct_chars تعریف کنید و مقدار اولیهی آن را صفر قرار دهید. سپس، برای هر اسم ورودی، تعداد حروف متمایز آن را محاسبه کنید. اگر تعداد حروف متمایز اسم فعلی از max_distinct_chars بیشتر بود، مقدار max_distinct_chars را با تعداد حروف متمایز اسم فعلی بهروزرسانی کنید. در نهایت، مقدار max_distinct_chars پاسخ مسئله خواهد بود.
max_distinct_chars = 0
for i in range(n):
s = input()
# محاسبهی تعداد حروف متمایز اسم s
distinct_chars = ...
if distinct_chars > max_distinct_chars:
max_distinct_chars = distinct_chars
میتوانید بهجای شرط
ifاز تابعmax()استفاده کنید:
max_distinct_chars = max(max_distinct_chars, distinct_chars)
💡 راهنمایی نهایی
ساختار کلی برنامه به این شکل است:
n = int(input())
max_distinct = 0
for i in range(n):
s = input()
distinct = ''
for char in s:
if char not in distinct:
distinct += char
if len(distinct) > max_distinct:
max_distinct = len(distinct)
print(max_distinct)
میتوانید از
set()برای محاسبهی حروف متمایز استفاده کنید:اما در این تمرین از روش دستی (با حلقه) استفاده کنید تا با مفاهیم پایهای بیشتر آشنا شوید.
distinct_count = len(set(s))
✅ این تمرین را در ویرایشگر خود پیادهسازی کنید و با ورودیهای مختلف تست کنید.
نمونهها
4 ali karim abbas mohammad
5
2 ab aaaaa
2
برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.
ورود