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

اكتب دالة `longest_word_chain(words: List[str]) -> int` تأخذ قائمة من الكلمات كمدخلات وترجع طول أطول سلسلة كلمات.

على سبيل المثال، في ضوء الإدخال `["a"، "ba"، "bca"، "bda"، "bdca"]`، يجب أن تُرجع الدالة `4` لأن أطول سلسلة كلمات هي `["a"، " با"، "bca"، "bdca"]`.

يمكنك أن تفترض أن جميع كلمات الإدخال فريدة وتحتوي على أحرف صغيرة فقط. قد تكون قائمة الإدخال فارغة، وفي هذه الحالة يجب أن ترجع الدالة `0`.

**توقيع الوظيفة**: `def Longword_chain(words: List[str]) -> int:`

**مدخل**
- قائمة الكلمات `الكلمات` (1 <= لين (كلمات) <= 1000)
- كل كلمة في "الكلمات" عبارة عن سلسلة من الأحرف الصغيرة ويبلغ طولها 1000 حرفًا على الأكثر

**انتاج**
- عدد صحيح يمثل طول أطول سلسلة كلمات

**مثال**
```
الإدخال: ["a"، "ba"، "bca"، "bda"، "bdca"]
الإخراج: 4

الإدخال: ["a"، "ba"، "bca"، "bda"، "bdca"، "xyz"، "zxy"]
الإخراج: 4

الإدخال: ["hello"، "world"، "hi"، "helo"]
الإخراج: 1

مدخل: []
الإخراج: 0
```
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}