tgoop.com/pyHints/856
Last Update:
#تجربه #مصاحبه
بعد از خیلی سال دوباره یک مصاحبه خیلی مهم دارم با یک شرکت بزرگ. برای همین چند روزی هست که روزی ۱-۲ ساعت دارم تمرین انجام میدم (خیلی وقت بود ازینکارا نکرده بودم ولی حالا که وقت دادن قبل مصاحبه بد نیست تمرین کنم)
سوالاتی که توی مصاحبههای خوبم تجربه کردم و بنظرم سوالات ارزشمندی بوده رو دارم تمرین میکنم و البته بحثهایی که بعدش اومده.
بله من سوالات و بحثهای مهم رو مینویسیم و نگه میدارم؛ شما هم باید اینکار رو بکنید. (قبلاً توضیح دادم)
امروز رسیدم به اولین سوالم؛ با یکی از شرکتهای FAANG
خیلی سال پیش بود و سوال مرحله اول (دقیقاً چهره مصاحبه کننده و استرس خودم و ... همرو یادم هست.)
گفتم سوال رو اینجا هم بذارم :
سیستمی رو پیاده سازی کن که بعنوان ورودی یک استرینگ از محاسبات ریاضی بصورت infix
دریافت کنه؛ بتونه خروجی رو بصورت postfix
, یا prefix
(هرکدوم راحتتری) تحویل بده یا اگر object
اون کلاس صدا زده شده؛ با استفاده از postfix/prefix
پیادهسازی شده محاسبات رو انجام بده و خروجی رو تحویل.
من اینو یادمه که با postfix
حل کردم چون راحتتر بود (stack) :
اما چندتا چیز رو بررسی میکرد:
۱- چون صحبت از object
شد باید. OOP
میبود
۲- حتماً باید __call__
رو براش پیادهسازی میکردم که callable
باشه (این یعنی داندر متودها رو میشناسم)
۳- سراغ پیادهسازی سادهتر رفتم (تصمیم گیری و شناخت مسأله، البته توضیح هم دادم چرا بنظرم سادهتر هست و ...)
۴- استفاده از stack
که بعد خود stack
رو پیادهسازی کردم (آشنایی با DS
, حتی بحث هم کردم بین LinkedList, Array
چرا و کدوم رو انتخاب میکنم برای ساخت stack
)
و موارد دیگهای که بعدش اومد و بحث شد؛ امروز دارم اینو تمرین میکنم با تست کیسهای سختتر. یاد اون مصاحبه افتادم و چون سوال خوبی بود برای تمرین گفتم اینجا هم بذارم.
پ.ن؛ اگر خواستید پیادهسازی کنید این حالات رو تست کنید (تو مصاحبه از مصاحبه کننده باید پرسیده بشه)
۱- سیستم ورودی invalid
داشته باشه؛ خروجی برای هر دو حالت None
هست
۲- سیستم infix
برای اولویت دادن به محاسبات از () ممکنه استفاده کنه
۳- سیستم فقط از ۴ عمل اصلی + پرانتز پشتیبانی خواهد کرد
۴- ورودیهای عددی ممکنه float/int
باشه
۵- ممکنه بین کاراکترها space باشه یا نباشه "17+3.5" or "17 + 3.5"
هر دو درست هست.
BY Python Hints
Share with your friend now:
tgoop.com/pyHints/856