programming thinking

بسم الله الرحمن الرحيم

programming thinking عنوان موضوعي اليوم كلنا نعلم ان اهم من البرمجه وكتابه الاكواد هو التفكير البرمجي في حد ذاته

Don't learn to code learn to think

سوف اعرض عليكم احد المواضيع التي تعتمد في الاساس علي مهاره التفكير البرمجي وانتظر من مجتمع مبرمجي حسوب العظيم الوصول للتفكير المنطقي لحل هذه المشكله

لدي جدول في قاعدة البيانات (t1) يحتوي علي id - title - user_id - price

وجدول اخر (users) يحتوي علي id - name

نفترض الجدول الاول يحتوي علي البيانات التاليه علي التوالي حسب ترتيب الاعمدة

Id :1

Title: laptop samsung

User_id:1

Price:500

والجدول الثاني يحتوي علي

Id:1

Name:Amr Alaa

اريد عند البحث بالكلمه التاليه

Laptop samsong السعر من 100 الي 800. للعضو Amr Alaa

احصل علي الناتج المطلوب من الجدول الاول الذي يحمل id 1

لاحظ كلمه samsung مكتوبه خطأ ومن الممكن ان يكون عبارة البحث بترتيب مختلف مثلا

لAmr alaa منتج laptop samsung من 100 الي 800

هل من لديه حل لهذة المشكله

ملحوظه هذة المشكله تم حلها من قبل مبرمجين شركتنا وسوف افصح عنها في نهايه النقاش


التعليق السابق

لقد وصلت الي حل جميل جدا ويعتبر جزأ من الحل لاكن حاول التطبيق وسوف تجد بطئ شديد في levenshtein

تعتبر وصلت لجزئ من الحل وليس الحل كله

نعم صحيح عندك حق تعقيد algorithm levenshtein distance باستعمال Dynamic programming هو O(n^2) واذا طبقناها على عدد k أعمدة فصيصبع شئ ضخم مثل O(k*n^2)

لا أعرف كيف يمكن حل المشكل تطبيقيا ولكني وجدت مقالة على ويكيبديا تتحدث عن levenshtein automaton سأحاول البجث عن وثائق عن هذه الخوارزمية ولكن يبدو حلا ذكيا.