Menu
CoddyTech

Word Break

لديك سلسلة نصية s وقائمة كلمات wordDict. أعد true إذا كان بإمكانك تقسيم s إلى أجزاء تكون جميعها كلمات من wordDict، وأعد false خلاف ذلك.

تحافظ الأجزاء على ترتيبها وتستخدم معًا كل حرف من s مرة واحدة بالضبط. يمكن استخدام الكلمة أي عدد من المرات، ولا يلزمك استخدام كل الكلمات.

الدالة

wordBreak(s: string, wordDict: string-array) → boolean
sstring
السلسلة المراد تقسيمها إلى كلمات
wordDictstring-array
الكلمات التي يمكنك استخدامها، كلٌّ منها بالقدر الذي تشاء
تُرجعboolean
صحيح إذا أمكن تقسيم s إلى كلمات من القاموس، وخطأ خلاف ذلك

القيود

  • 1 ≤ s.length ≤ 300
  • 1 ≤ wordDict.length ≤ 1000
  • 1 ≤ wordDict[i].length ≤ 20
  • s وتحتوي كل كلمة على أحرف إنجليزية صغيرة فقط.
  • الكلمات الموجودة في wordDict كلها مختلفة.

أمثلة

المدخلات
s = "sunflowerseed"wordDict = ["sun", "flow", "flower", "seed"]
المخرجات
true
الشرح
قسّمها إلى sun وflower وseed. أخذ flow بعد sun يترك er، وهي بداية لا تبدأ بها أي كلمة، لذا فإن أول كلمة تناسب ليس دائمًا الخيار الصحيح.
challenge icon

سؤال إضافي

أعِد أقل عدد من الكلمات التي يمكن أن يستخدمها تقسيم صالح، أو -1 إذا تعذّر تقسيم s. ما الذي يتغير في الجدول، وهل يتغير زمن التنفيذ؟

إعادة ضبط الشيفرة
def wordBreak(s, wordDict):
    # اكتب الكود هنا

اختبار #1

اختبار #2

اختبار #3

الوسائط

s = "sunflowerseed"
wordDict = ["sun", "flow", "flower", "seed"]

الإخراج المتوقع

true