راه
۸ کیو· خیلی سادهمبتدیPYTHON۴ ثانیه · ۲۵۶ مگابایت

اسم‌ها

کریم به اسم‌هایی علاقه دارد که تعداد حروف متمایز در آن‌ها زیاد باشد. برای مثال، اسم karim دارای پنج حرف متمایز (k، a، r، i و m) و اسم abbas دارای سه حرف متمایز (a، b و s) است.

کریم در انتخاب اسم از بین n اسم پیشنهادی دچار تردید شده‌است. او می‌خواهد اسمی را انتخاب کند که بیشترین تعداد حروف متمایز را داشته باشد. وظیفه‌ی شما این است که به او کمک کنید و بیشترین تعداد حروف متمایز در بین اسم‌های داده‌شده را پیدا کنید.


📥 ورودی

خط اول ورودی شامل یک عدد صحیح مثبت n است که نشان‌دهنده‌ی تعداد اسم‌های پیشنهادی است. در n خط بعدی، در هر خط یک اسم پیشنهادی به‌عنوان رشته‌ای با حداکثر ۲۰ حرف از حروف کوچک انگلیسی آمده‌است.

📤 خروجی

در تنها خط خروجی، یک عدد صحیح چاپ کنید که برابر با بیشترین تعداد حروف متمایز در بین اسم‌های ورودی باشد.


🎯 نمونه

ورودی ۱

text
4
ali
karim
abbas
mohammad

خروجی ۱

text
5

اسم ali دارای ۳ حرف متمایز، اسم karim دارای ۵ حرف متمایز، اسم abbas دارای ۳ حرف متمایز و اسم mohammad دارای ۵ حرف متمایز است. بیشترین تعداد حروف متمایز در بین این اسم‌ها ۵ است.

ورودی ۲

text
2
ab
aaaaa

خروجی ۲

text
2

اسم ab دارای ۲ حرف متمایز و اسم aaaaa دارای ۱ حرف متمایز است. بیشترین تعداد حروف متمایز ۲ است.


💡 چالش‌های حل تمرین

چگونه تعداد حروف متمایز یک اسم را به‌دست آوریم؟

برای محاسبه‌ی تعداد حروف متمایز در یک اسم (رشته) مانند s، می‌توانید از روش زیر استفاده کنید:

python
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 پاسخ مسئله خواهد بود.

python
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() استفاده کنید:

python
max_distinct_chars = max(max_distinct_chars, distinct_chars)

💡 راهنمایی نهایی

ساختار کلی برنامه به این شکل است:

python
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() برای محاسبه‌ی حروف متمایز استفاده کنید:

اما در این تمرین از روش دستی (با حلقه) استفاده کنید تا با مفاهیم پایه‌ای بیشتر آشنا شوید.

python
distinct_count = len(set(s))

✅ این تمرین را در ویرایشگر خود پیاده‌سازی کنید و با ورودی‌های مختلف تست کنید.

نمونه‌ها

ورودی نمونه ۱
4
ali
karim
abbas
mohammad
خروجی نمونه ۱
5
ورودی نمونه ۲
2
ab
aaaaa
خروجی نمونه ۲
2

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود