البرمجة

فروق بين شفرتين لتحديد أطول كلمة في روبي

الاختلاف بين الشفرتين يعود إلى الطريقة التي يتعاملان بها مع تحديد أطول كلمة في السلسلة المعطاة.

الشفرة الأولى:

ruby
def longest_word(sentence) words = sentence.split(" ") longest_word = nil word_idx = 0 while word_idx < words.length current_word = words[word_idx] if longest_word == nil longest_word = current_word elsif longest_word.length < current_word.length longest_word = current_word end word_idx += 1 end return longest_word end

تقوم بتقسيم السلسلة إلى كلمات فردية باستخدام الفراغ كمحدد، ثم تقوم بمقارنة طول الكلمات واختيار الكلمة الأطول.

أما الشفرة الثانية:

ruby
def LongestWord(sen) arr = sen.split.map do |w| /[a-zA-Z0-9\s]+/.match(w) end longest = arr.max_by do |w| w.to_s.length end return longest end

فهي تقوم بنفس العملية تقريباً، ولكن بطريقة أكثر تعقيداً. تقوم أولاً بتقسيم السلسلة إلى كلمات باستخدام الفراغ، ثم تستخدم تعبيرًا منتظمًا للتأكد من أن كل كلمة تحتوي فقط على أحرف وأرقام وفراغات، ثم تختار الكلمة الأطول باستخدام دالة max_by.

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

المزيد من المعلومات

بالطبع، دعني أوضح المزيد حول الاختلافات بين الشفرتين وكيفية تأثير ذلك على النتائج التي تحصل عليها.

الشفرة الأولى تعتمد على فكرة بسيطة للعثور على أطول كلمة في الجملة. تقوم بتقسيم الجملة إلى كلمات عن طريق تقسيم السلسلة بناءً على الفراغات ومن ثم تحليل كل كلمة على حدة. ثم تقارن طول كل كلمة وتحتفظ بالأطول.

الشفرة الثانية، على الجانب الآخر، تستخدم تعبيرًا منتظمًا للتأكد من أن الكلمات تحتوي فقط على الأحرف والأرقام والفراغات. هذا يعني أنها ستقوم بتجاهل أي رموز أو رموز ترقيم أو أي نوع آخر من الرموز في النص، وهذا يؤثر على النتيجة التي تحصل عليها.

لذلك، إذا كانت الجملة تحتوي على أحرف غير أبجدية أو أرقام، فقد تؤدي الشفرة الثانية إلى نتيجة غير متوقعة، بينما تعتمد الشفرة الأولى فقط على طول الكلمات دون التحقق من صحتها.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر