رفتن به مطلب
بازگشایی انجمن! ×
GuardIran

تمرین برنامه نویسی با پایتون


Mr.Python

پست های پیشنهاد شده

-سوال 

این سوالو تو یکی از گروه های تلگرامی چند وقت پیش دیدم


برنامه ای بنویسید که یک رشته از کاربر بگید و عمل زیر را انجام دهد:

بررسی کند که ایا ترتیب حروف hello در آن رعایت شده یا نه .

بطور مثال :

hellow

h45e8l8lo

درسته ولی اینها غلط هستن:

heelow

he78lo

نکته : به تعداد کاراکتر ها باید توجه کنید .

 

حل رو میذارم که خودم با ریجکس نوشتم (دوستان تلفظ کلمه regex میتونه هم بریتانیایی یعنی rehjeks خونده بشه هم regeks که امریکایی هست - لازم نیست حتما تمام کلمات انگلیسی رو تو زبان فارسی عینا تلفظ کنیم و میتونیم یکم تغییرش بدیم و این به معنای این نیست که قراره هر کی برا خودش یه تلفظ درست کنه - در کل سخت نگیرید میتونین شکل درست رو بدونین ولی هر جور راحتترین بیانش کنین - مسلما راحتی تو این نیست که بگیم "رجیک" ! بگذریم...)

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


هم اکنون، Mr.Python گفته است:

-سوال 

این سوالو تو یکی از گروه های تلگرامی چند وقت پیش دیدم


برنامه ای بنویسید که یک رشته از کاربر بگید و عمل زیر را انجام دهد:

بررسی کند که ایا ترتیب حروف hello در آن رعایت شده یا نه .

بطور مثال :

hellow

h45e8l8lo

درسته ولی اینها غلط هستن:

heelow

he78lo

نکته : به تعداد کاراکتر ها باید توجه کنید .

 

حل رو میذارم که خودم با ریجکس نوشتم (دوستان تلفظ کلمه regex میتونه هم بریتانیایی یعنی rehjeks خونده بشه هم regeks که امریکایی هست - لازم نیست حتما تمام کلمات انگلیسی رو تو زبان فارسی عینا تلفظ کنیم و میتونیم یکم تغییرش بدیم و این به معنای این نیست که قراره هر کی برا خودش یه تلفظ درست کنه - در کل سخت نگیرید میتونین شکل درست رو بدونین ولی هر جور راحتترین بیانش کنین - مسلما راحتی تو این نیست که بگیم "رجیک" ! بگذریم...)

This is the hidden content, please

یه چند تا کلمه برای تست گذاشتم تو لیست .

نکته اینه که شاید بتونید ریجکس بهتری براش بنویسید . من دیگه نخواستم روش فکر کنم ...

به هر حال اینجوریم میتونید بنویسید تابع رو :

This is the hidden content, please

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


-سوال 

برنامه ای بنویسید که اعداد کامل را چاپ کند .

(اعداد کامل میدونید چیا هستن و یا میتونید سرچ بزنین )

 

جواب :

 

 

 

 

This is the hidden content, please

خب ببینید اینجا اگه از اون راه حل معمولی و "واضح" استفاده کنین مشکل درست میشه چون سرعت برنامه به شدت پایین میاد ..

هر چند این روش هم خیلی خوب نیست و برای اعداد بزرگ نیاز به زمان بیشتری داره ولی خب خیلی خیلی بهتر از راه معمولیش هست که بیاید مقسوم علیه هارو پیدا کنین جمع بزنین و ...

این رابطه تا جایی که میدونم اثبات شده ..

دوستانی که از کامپلکسیتی سر در میارن حتما میدونید که برای قسمت "چک کردن عدد اول" کامپلکسیتی به این شکله:

This is the hidden content, please

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


-سوال 

رشته ی s به شما داده میشود که حاوی اعداد ، حروف بزرگ و کوچیک انگلیسی هست . اعمال زیر را انجام دهید.

1. حروف کوچیک به صورت مرتب شده قبل از حروف بزرگ

2.حروف بزرگ به صورت مرتب شده قبل از اعداد 

3. اعدد فرد به صورت مرتب شده قبل از اعداد زوج که مرتب شدن 

نکته:منظور از مرتب شده، مرتب کردن عناصر با ascii code های مربوط بهشون هست

 

 

جواب:

This is the hidden content, please

از sort استفاده کردیم نه sorted 

بخاطر این که این متد in-place عمل میکنه و یه آبجکت جدید درست نمیکنه و کار مرتب سازی رو رو همون لیست انجام میده در صورتی که sorted میاد لیست جدید درست میکنه و اعضای مرتب شده رو داخلش میندازه

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


سوال 

This is the hidden content, please
 (فشرده سازی خاص)

جواب رو تو پست پایین میذارم

نکات سوال و راهنمایی: البته راه حل اسپویل میشه تا حدی :)
سعی کردم ، کامپلکسیتی( پیچیدگی برنامه - تعداد مراحل انجام کار) تا حد ممکن کم باشه و بهینه باشه
یهراه دیگم میتونه این باشه که از تابع Counter در ماژول collections استفاده کنین تا تعداد هر عنصر داخل رشته رو در قالب دیکشنری بهتون بده 
و بعد بیاین دوباره رو رشته iterate کنید با حلقه ها و مشخص کنید چه حرفی چند بار تکرار شده و ....
یا اصلا بدون ماژول بیاین از متد count استفاده کنین و ...
راه حلا زیاده 
من اینجا از یه لیست و یه دیکشنری استفاده میکنم و هر بار خالیشون میکنم (این خالی کردن ، خودش سرعت رو میاره پایین ) به هر حال "پایتونه "و نمیتونید واقعا تشخیص بدیدبرنامتون کامپلکسیتی کمتری داره(بهینه تره) مگر اینکه کاربرد هر متد رو بدونین - بدونین وقتی میگیم count داره در حقیقت اون پشت مشتا رو اون شی یه حلقه میزنه و حلقه کامپلکسیتی رو بالا میبره ... همین مسئله برای دیکشنری هم صدق میکنه ....
برای اینجور چیزا باید زبان C مسلط باشید ... که این توابع داخلی خودشون به زبان سی نوشته شدن 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


2 دقیقه قبل، Mr.Python گفته است:

سوال 

This is the hidden content, please
 (فشرده سازی خاص)

جواب رو تو پست پایین میذارم

نکات سوال و راهنمایی: البته راه حل اسپویل میشه تا حدی :)
سعی کردم ، کامپلکسیتی( پیچیدگی برنامه - تعداد مراحل انجام کار) تا حد ممکن کم باشه و بهینه باشه
یهراه دیگم میتونه این باشه که از تابع Counter در ماژول collections استفاده کنین تا تعداد هر عنصر داخل رشته رو در قالب دیکشنری بهتون بده 
و بعد بیاین دوباره رو رشته iterate کنید با حلقه ها و مشخص کنید چه حرفی چند بار تکرار شده و ....
یا اصلا بدون ماژول بیاین از متد count استفاده کنین و ...
راه حلا زیاده 
من اینجا از یه لیست و یه دیکشنری استفاده میکنم و هر بار خالیشون میکنم (این خالی کردن ، خودش سرعت رو میاره پایین ) به هر حال "پایتونه "و نمیتونید واقعا تشخیص بدیدبرنامتون کامپلکسیتی کمتری داره(بهینه تره) مگر اینکه کاربرد هر متد رو بدونین - بدونین وقتی میگیم count داره در حقیقت اون پشت مشتا رو اون شی یه حلقه میزنه و حلقه کامپلکسیتی رو بالا میبره ... همین مسئله برای دیکشنری هم صدق میکنه ....
برای اینجور چیزا باید زبان C مسلط باشید ... که این توابع داخلی خودشون به زبان سی نوشته شدن 

This is the hidden content, please

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


سوال (از codewars) سطح بالای 4kyu 

لینک:

This is the hidden content, please

لینک جواب خودم رو هم میذارم : 
This is the hidden content, please


عدد n بهتون داده میشه باید دنباله ای از اعداد پایین 

This is the hidden content, please

رو پیدا کنید که مجموع مربعات اعضای این دنباله برابر 
 

This is the hidden content, please

باشه .
به عبارت دیگه:
 

This is the hidden content, please

یعنی درواقع n رو بهتون میدن و شما باید این اعداد a bc ,.. رو پیدا کنید و به صورت list نمایش بدین . 
اما این اعداد به هیچ وجه نباید شبیه هم باشن و باید به صورت صعودی باشن تو لیست .

مثال )
اگر :
 

This is the hidden content, please

خروجی داریم:
 

This is the hidden content, please

چون 
 

This is the hidden content, please

مثال )
 

This is the hidden content, please

خروجی:
 

This is the hidden content, please

راهنمایی: 
در هر مرحله نزدیک ترین عدد مربع کامل  رو پیدا کنید.
 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • ایجاد مورد جدید...