مكتشف الأنماط
جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 77 من 78.
التحدي
سهلقم بإنشاء دالة تسمى count_pattern تأخذ وسيطين: text و pattern. يجب أن تعيد الدالة عدد مرات ظهور النمط (pattern) في النص (text)، بما في ذلك التداخلات.
ستتلقى سطرين من المدخلات:
- سلسلة النص المراد البحث فيها
- سلسلة النمط المراد البحث عنه
قم باستدعاء الدالة الخاصة بك مع المدخلات المقدمة واطبع النتيجة.
تلميحات:
- استخدم
nchar()للحصول على طول السلاسل النصية - استخدم
substr(text, start, stop)لاستخراج سلاسل نصية فرعية - قم بالمرور عبر كل موضع بداية صالح وتحقق مما إذا كانت السلسلة الفرعية تطابق النمط
على سبيل المثال، إذا كان الإدخال هو:
ababa
abaيجب أن تكون المخرجات:
2التوضيح: النمط "aba" يظهر في الموضع 1 (ababa) والموضع 3 (ababa)، لذا فإن العدد هو 2.
إذا كان الإدخال هو:
mississippi
issiيجب أن تكون المخرجات:
2جرّب بنفسك
# قراءة المدخلات
con <- file("stdin", "r")
text <- suppressWarnings(readLines(con, n = 1))
pattern <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: إنشاء دالة تسمى count_pattern تأخذ text و pattern
# وتعيد عدد مرات ظهور pattern المتداخلة في text
# استدعاء الدالة وطباعة النتيجة
print(count_pattern(text, pattern))جميع دروس Fundamentals
4المعاملات - الجزء الثاني
المعاملات المنطقية (AND, OR)المعاملات المنطقية - الجزء الثاني (NOT)مراجعة - المنطق البسيطالمنطق المتجهي - الجزء الأولالمنطق المتجهي - الجزء الثاني2المتغيرات وأنواع البيانات
نوع البيانات الرقمينوع البيانات الصحيحنوع البيانات الحرفينوع البيانات المنطقيالتحقق من أنواع البياناتقواعد التسميةالقيم المفقودة: NAملخص - إنشاء المتغيرات8الحلقات التكرارية
حلقة Forحلقة Whileجملة Breakجملة Next (Continue)مراجعة - المضروب (Factorial)توليد المتتاليات (seq, :)الحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)3المعاملات - الجزء الأول
المعاملات الحسابيةقسمة الأعداد الصحيحة وباقي القسمةمعاملات الإسنادملخص - عمليات رياضية بسيطةمعاملات المقارنة6أساسيات الإدخال والإخراج
طباعة المخرجاتاستخدام Cat للمخرجاتالمخرجات مع المتغيراتقراءة المدخلات باستخدام readline()أساسيات تحويل أنواع البياناتمراجعة - حاسبة العمرمراجعة - صح أم خطأ