ورود

View Full Version : حرفه ای: یه سوال الگوریتمی



Javad90
سه شنبه 06 دی 1390, 17:11 عصر
سلام
یه سوال الگوریتمی دارم اگه می تونین کمک کنید حلش کنم.
سوال سادس زیاد توضیح نمی خواد

ما هر بار یه رشته رو از کاربر دریافت می کنیم و باید برای اون یه کیبورد بسازیم تا با کمترین تعداد فشردن دکمه ها بشه اون متن رو تابپ کرد. کیبوردی که می خوایم بسازیم 9 تا دکمه داره مثه کیبورد موبایل
دو تا شرط داره، اول اینکه حروف الفبا باید به ترتیب توی این کیبورد چیده بشن مثه موبایل
و دوم اینکه هر دکمه باید حداقل دارای یک حرف باشه.
سوال رو تو استک اورفلو (http://stackoverflow.com/questions/8647698/the-shortest-path-for-pressing-input-text-by-keypad)هم پرسیدم، ببینم کی زودتر جواب میده

rahmatr
سه شنبه 06 دی 1390, 19:50 عصر
توی سایت stackoverflow (http://stackoverflow.com) بیشتر توضیح داده بودی.

وقتی تعداد حروف رشته دریافتی از کاربر بدون احتساب تکرار آنها کمتر یا مساوی 9 باشد که جوابش واضح است.

اما وقتی بیشتر از 9 حرف داریم:
اول باید حروف رشته را بر حسب تعداد تکرار مرتب کنیم.
بعد از حروفی که بیشتر تکرار شدند شروع می کنیم و روی خانه های 1 تا 9 جاگذاری می کنیم اینها می شوند حروف اول کلیدهای 1 تا 9.
9 که پر شد بر می گردیم و دوباره از 1 شروع به پر کردن می کنیم تا حروف تمام شوند. همین!

mobintmu
چهارشنبه 07 دی 1390, 19:29 عصر
خیلی احساس می کنم سوالت به کدگزاری مربوط می شه
اینکه با کمترین حروف ممکن بیشترین حرف رو بزنیم

Javad90
پنج شنبه 08 دی 1390, 15:13 عصر
@mobintmu: بله درسته، ولی من سوال رو به گونه ای پرسیدم که راحت تر بشه درک کرد! البته شاید!!
به هر حال روشی که rahmatr معرفی کرده کامل نیست و با این روش نمیشه به جواب رسید و تنها میشه اونو یه جواب سطحی دونست.
اگه کسی پیشنهاد بهتری داره لطفا دریغ نکنه:چشمک:

rahmatr
پنج شنبه 08 دی 1390, 20:37 عصر
درسته من این شرط رو دقت نکردم :

دو تا شرط داره، اول اینکه حروف الفبا باید به ترتیب توی این کیبورد چیده بشن مثه موبایل