• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

پرسش و پاسخ پیرامون برنامه‌نویسی

  • شروع کننده موضوع max
  • تاریخ شروع

Karenn

کاربر خاک‌انجمن‌خورده
عضو کادر مدیریت
مدیر داخلی
ارسال‌ها
2,390
امتیاز
34,329
نام مرکز سمپاد
فرزانگان ۲
شهر
کرج
سال فارغ التحصیلی
1401
مدال المپیاد
Physics
دانشگاه
SUT
رشته دانشگاه
Physics
391aa3a3-ebea-4dcd-812f-192abf98f34e_kxyh.jpeg

سلام دوستان
بنظرتون این چطوری میشه؟
گمونم
تابع رو با for باید بری با توجه به اینکه هر استرینگ خودش یه لیست محسوب میشه
بعد تو حلقه با if شرط بنویسی که اگر متغییر برابر فلان کارکتر باشه بهم ۱ بده
در غیر این صورت ۰

بعد برای برنامه هه میای مثلا یه کارکتر رو در نظر میگیری تابع رو اعمال میکنی باز با if هرچی بهت ۱ داد رو میگی چاپ کنه
 

Scarlett

✷‿✷
ارسال‌ها
305
امتیاز
4,463
نام مرکز سمپاد
فرزانگان
شهر
شیراز
سال فارغ التحصیلی
1404
_obwb.png
سلام وقت بخیر
جواب این چطوری میشه؟
 

Scarlett

✷‿✷
ارسال‌ها
305
امتیاز
4,463
نام مرکز سمپاد
فرزانگان
شهر
شیراز
سال فارغ التحصیلی
1404
d10e0cf5-427c-473d-b029-24fe45db23ba_itht.jpeg

و این لطفا
 

اِئل آی

کاربر نیمه‌فعال
ارسال‌ها
12
امتیاز
222
نام مرکز سمپاد
فرزانگان
شهر
تهران
سال فارغ التحصیلی
1404
سلاام
https://codeforces.com/problemset/problem/492/B
اين سوال از تگ باينری سرچ هستش اما متوجه نميشم كدوم قسمت باینری سرچ میخواد. ممنون میشم راهنمایی کنید
 

_Hani

رویای بی انتها
کنکوری 1402
ارسال‌ها
18
امتیاز
776
نام مرکز سمپاد
فرزانگان ۳
شهر
اهواز
سال فارغ التحصیلی
1402
_obwb.png
سلام وقت بخیر
جواب این چطوری میشه؟

Python:
stu = []
grd = []
stu_usr = input("Enter student names wit  spaces: ")
grd_usr = input("Enter grades with spaces: ")
stu = stu_usr.split(" ")
grd = grd_usr.split(" ")
for i in grd:
    if int(i)<13:
        stu.pop(grd.index(i))
        grd.remove(i)
print(stu)
print(grd)


Python:
mylist = []
mystr = input("Enter your numbers with spaces: ")
mylist = mystr.split(" ")
print(mylist)
num = input("enter a number: ")
if num in mylist:
    mylist.pop(mylist.index(num))
print(mylist)
 

Scarlett

✷‿✷
ارسال‌ها
305
امتیاز
4,463
نام مرکز سمپاد
فرزانگان
شهر
شیراز
سال فارغ التحصیلی
1404
Python:
stu = []
grd = []
stu_usr = input("Enter student names wit  spaces: ")
grd_usr = input("Enter grades with spaces: ")
stu = stu_usr.split(" ")
grd = grd_usr.split(" ")
for i in grd:
    if int(i)<13:
        stu.pop(grd.index(i))
        grd.remove(i)
print(stu)
print(grd)



Python:
mylist = []
mystr = input("Enter your numbers with spaces: ")
mylist = mystr.split(" ")
print(mylist)
num = input("enter a number: ")
if num in mylist:
    mylist.pop(mylist.index(num))
print(mylist)
ممنونم

این سوال رو من با forهای تو درتو رفتم
راه دیگه ای هم داره؟
e1ef6348-b312-4865-bf87-a88563fff9c3_q30n.jpeg
 

Nimbus

لنگر انداخته
ارسال‌ها
2,994
امتیاز
10,157
نام مرکز سمپاد
شهید بهشتی
شهر
تهران
سال فارغ التحصیلی
92
ممنونم

این سوال رو من با forهای تو درتو رفتم
راه دیگه ای هم داره؟
e1ef6348-b312-4865-bf87-a88563fff9c3_q30n.jpeg
با دیکشنری میشه فکر کنم.

کلید های دیکشنری کاراکتر های مجاز هستن و مقادیرشون لیست هایی از رشته هایی میشن که کاراکتر اولشون کلیدشون باشه.

ویرایش:

اینطوری

Python:
list_of_strings=["gav","soosmar","gorbeh","khar","morgh","maahi","sag","kargadan"]

sorted_strings={}

for str in list_of_strings:
    if str[0] in sorted_strings:
        sorted_strings[str[0]].append(str)
    else:
        sorted_strings[str[0]]=[]
        sorted_strings[str[0]].append(str)

print(sorted_strings)
 

خاکی

کاربر فوق‌فعال
ارسال‌ها
94
امتیاز
661
نام مرکز سمپاد
شهید بهشتی 1
شهر
اردبیل
سال فارغ التحصیلی
1401
دانشگاه
خوارزمی
رشته دانشگاه
مهندسی کامپیوتر
img_20220909_160417_165_25g.jpg
 

Scarlett

✷‿✷
ارسال‌ها
305
امتیاز
4,463
نام مرکز سمپاد
فرزانگان
شهر
شیراز
سال فارغ التحصیلی
1404
b5be4957-051e-4a82-8a3a-814acd234d32_ui8j_bcro.jpeg

سلام :")))
این جوابش چطور میشه؟
 

Pan

It's morbin time
ارسال‌ها
581
امتیاز
11,083
نام مرکز سمپاد
فرزانگان
شهر
بجنورد
سال فارغ التحصیلی
97
J
b5be4957-051e-4a82-8a3a-814acd234d32_ui8j_bcro.jpeg

سلام :")))
این جوابش چطور میشه؟

با دیکشنری میشه حلش کرد. یه دیکشنری خالی میسازی بعد با یه فور لوپ رو حروف iterate می‌کنی. به طوری که حروف کلیدهای دیکشنری هر حرف باشه و تعداد هر کدوم مقابلش. یعنی تقریبا دقیقا مثل این که بالاتر برای یه سوال دیگه جواب داده بودن فقط با کلیدهای دیگه:

Python:
list_of_strings=["gav","soosmar","gorbeh","khar","morgh","maahi","sag","kargadan"]

sorted_strings={}

for str in list_of_strings:
    if str[0] in sorted_strings:
        sorted_strings[str[0]].append(str)
    else:
        sorted_strings[str[0]]=[]
        sorted_strings[str[0]].append(str)

print(sorted_strings)

(یعنی فور لوپت باید بشه for letter in name مثلا)

با چیزی مثل Counter این خیلی راحت‌تر حل میشه ولی حدس می‌زنم برای تمرین‌های کلاسی بیشتر منطق و الگوریتم مد نظرشونه و اجازه استفاده از اینجور چیزها رو نمیدن.

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

برای نوشتن ستاره هم استرینگ یه متود داره به نام replace داره که خیلی راحت انجام میده اینو. ولی اگه اینم نخوای استفاده کنی با یه فول لوپ دیگه انجام میشه. اگه مثلا بیشترین حرف توی متغییر a باشه میشه:

Python:
# replace method
result = name.replace(a, "*")

# for loop
name = list(name)
n = len(name)
for i in range(n):
    If name[i] == a:
        name[i] = "*"
name = "".join(name)
 
بالا