عندما كنت البرمجة في بيثون ، وهناك حالات عندما تحتاج إلى العثور على ومعالجة جميع الأقواس في سلسلة. يمكن أن يكون هذا مفيدا ، على سبيل المثال ، عند تحليل التعبيرات الرياضية أو عند تحليل الكود. في هذه المقالة ، سأخبرك عن عدة طرق لإيجاد أقواس الفتح والإغلاق في سلسلة بايثون.
النهج الأول هو استخدام حلقة وتكرار على كل حرف في السلسلة. في كل تكرار ، نتحقق مما إذا كان الحرف عبارة عن قوس فتح أو إغلاق. إذا كان الأمر كذلك ، فإننا نزيد عداد الأقواس المقابلة. في النهاية ، إذا كان عداد الأقواس الافتتاحية مساويا لعدد أقواس الإغلاق ، فهذا يعني أن جميع الأقواس متوازنة.
نهج آخر هو استخدام وحدة إعادة التعبير العادية. يمكننا تحديد نمط للبحث عن الأقواس في سلسلة ثم استخدام وظيفة إعادة.فيندال () للعثور على جميع مباريات هذا النمط في سلسلة. ستكون النتيجة قائمة بجميع الأقواس الموجودة.
يرجى ملاحظة أن كلا النهجين الموصوفين في هذه المقالة بسيطان وعامان ، ويمكن تعديلهما أو تحسينهما اعتمادا على حالة الاستخدام المحددة.
- طرق البحث عن فتح وإغلاق الأقواس
- البحث()
- طريقة تقسيم () طريقة
- التحقق من توازن الأقواس
- باستخدام المكدس
- التحقق العودي
- عد عدد فتح وإغلاق الأقواس
- طريقة العد ()
- يستخدم حلقة
- سؤال وجواب
- كيف يمكنني العثور على فتح وإغلاق الأقواس في سلسلة بيثون?
- كيف يمكنني التحقق من أن جميع الأقواس تفتح وتغلق على التوالي?
- كيف يمكنني العثور على مواقف فتح وإغلاق الأقواس في سلسلة بيثون?
- كيف يمكنني العثور على مجموع كل فتح وإغلاق الأقواس في سلسلة بيثون?
طرق البحث عن فتح وإغلاق الأقواس
في لغة برمجة بايثون ، هناك عدة طرق للبحث عن أقواس الفتح والإغلاق في سلسلة. دعونا ننظر إلى بعض منهم:
- طريقة البحث (): تقوم هذه الطريقة بإرجاع فهرس التكرار الأول للسلسلة الفرعية المحددة. يمكنك استخدامه للبحث عن قوس الفتح "(" وقوس الإغلاق ")". على سبيل المثال:
سلسلة = " (بايثون هي لغة برمجة رائعة)"
فتح _ قوس = سلسلة.تجد (" (")
إغلاق _ قوس = سلسلة.البحث (")")
نتيجة لتنفيذ هذه الأسطر من التعليمات البرمجية ، سيحتوي متغير القوس المفتوح على فهرس قوس الفتح ، وسيحتوي متغير القوس القريب على فهرس قوس الإغلاق.
- طريقة الفهرس (): تعمل هذه الطريقة بشكل مشابه لطريقة البحث () ، ومع ذلك ، إذا كانت السلسلة الفرعية المحددة مفقودة ، فإنها تطرح استثناء. لذلك ، يجب استخدامه بحذر.
سلسلة = " (بايثون هي لغة برمجة رائعة)"
فتح _ قوس = سلسلة.الفهرس (" (")
إغلاق _ قوس = سلسلة.الفهرس (")")
في هذه الحالة ، نحصل على نفس النتيجة مثل استخدام طريقة البحث ().
- طريقة الانقسام (): تقسم هذه الطريقة سلسلة إلى سلاسل فرعية باستخدام محدد محدد. يمكنك تقسيم سلسلة إلى سلاسل فرعية تحتوي فقط على أقواس فتح وإغلاق. على سبيل المثال:
سلسلة = " (بايثون هي لغة برمجة رائعة)"
بين قوسين = سلسلة.انقسام ("")
نتيجة لتنفيذ هذه الأسطر من التعليمات البرمجية ، سيحتوي متغير الأقواس على مجموعة من السلاسل الفرعية التي تحتوي على أقواس فقط.
- التعبيرات العادية: هناك طريقة أخرى فعالة للعثور على أقواس الفتح والإغلاق وهي استخدام التعبيرات العادية. توفر وحدة إعادة عدة طرق للعمل مع التعبيرات العادية ، على سبيل المثال:
استيراد إعادة
سلسلة = " (بايثون هي لغة برمجة رائعة)"
فتح _ قوس = إعادة.بحث (ص ' (\()' ، سلسلة)
إغلاق _ قوس = إعادة.بحث (ص ' (\))' ، سلسلة)
في هذه الحالة ، ستحتوي المتغيرات على قوس مفتوح وقوس مغلق على كائنات تمثل الأقواس المقابلة في السلسلة.
- طرق شارع.العد () وشارع.العد () - يمكن استخدامه لحساب عدد أقواس الفتح والإغلاق على التوالي.
تمثل الطرق الموصوفة فقط بعض الطرق للعثور على أقواس الفتح والإغلاق في سلسلة بايثون. يمكن أن تكون معرفة كيفية عملها مفيدة في تطوير البرامج المتعلقة بمعالجة السلسلة وتحليل البيانات.
طريقة البحث ()
في بيثون هو وسيلة مريحة للعثور على موقف أول حدوث سلسلة فرعية في سلسلة. يسمح لك بالتحقق مما إذا كانت السلسلة الفرعية المطلوبة موجودة في سلسلة والعثور على موضعها.
يبدو مثل هذا:
| بناء الجملة | الوصف |
|---|---|
من شارع.البحث عن (الفرعية [،بداية [،نهاية]]) | . |
معلمات الطريقة:
- - السلسلة الفرعية المطلوبة ، والتي يجب العثور على موضعها;
- (اختياري) — الفهرس الذي يبدأ منه البحث;
- (اختياري) — الفهرس حيث ينتهي البحث.
إرجاع فهرس التكرار الأول لسلسلة فرعية في سلسلة. إذا لم يتم العثور على السلسلة الفرعية ، فإنها ترجع -1.
مثال الاستخدام:
سلسلة = " مرحبا ، العالم!"
سوبستر = "العالم"
مؤشر = سلسلة.البحث (سوبستر)
طباعة (فهرس) # الإخراج: 7
يجد أول ظهور لسلسلة " العالم "في السلسلة" مرحبا ، العالم!"وإرجاع مؤشر 7.
وشرائح:
سلسلة = " (اي بي سي (مواطنه (ز)))"
فتح _ قوس = "("
إغلاق _ قوس = ")"
ابدأ = سلسلة.البحث عن (فتح _ قوس) + 1
نهاية = سلسلة.البحث عن (إغلاق _ قوس ، ابدأ)
المحتوى = سلسلة [البداية: النهاية]
طباعة (المحتوى) # الإخراج: "اي بي سي (مواطنه (ز))"
وتحديد موضع البداية ، نبدأ في البحث عن قوس الإغلاق. ونتيجة لذلك ، نحصل على محتويات بين قوسين ، في هذه الحالة "أبك(ديف(ز))".
بل هو أداة قوية للعمل مع سلاسل في بيثون ، ويمكن استخدامها لمختلف المهام المتعلقة بالبحث ومعالجة سلاسل فرعية.
انقسام()
طريقة طريقة الانقسام () هي واحدة من أكثر الطرق فائدة وشائعة لتقسيم سلسلة إلى أجزاء. بشكل افتراضي ، تقسم هذه الطريقة السلسلة إلى أجزاء باستخدام مسافة كفاصل. يقوم بإرجاع قائمة بأجزاء السلسلة.
لاستخدام طريقة الانقسام () ، تحتاج إلى الاتصال بها على السلسلة التي تريد تقسيمها ، وتمرير وسيطة اختيارية إليها — حرف أو سلسلة فرعية سيتم استخدامها كفاصل.
على سبيل المثال ، يمكنك استخدام طريقة الانقسام() لتقسيم سلسلة إلى كلمات. في هذه الحالة ، سيتم استخدام مساحة كفاصل:
الجملة = "طريقة الانقسام () تقسم السلسلة إلى أجزاء"
الكلمات = الجملة.انقسام()
طباعة (كلمات)
الناتج:
['طريقة' ، ' سبليت ()' ، 'انشقاقات' ، 'سلسلة' ، ' في ' ، 'أجزاء']
بدلا من ذلك ، يمكنك استخدام طريقة الانقسام() لتقسيم سلسلة إلى أجزاء باستخدام فاصل مختلف. على سبيل المثال ، يمكنك تقسيم سلسلة إلى كلمات منفصلة باستخدام فاصلة كفاصل:
الجملة = "طريقة الانقسام () ، تقسم السلسلة إلى أجزاء"
الكلمات = الجملة.انقسام ("،")
طباعة (كلمات)
الناتج:
['سبليت () طريقة' ، 'انشقاقات سلسلة' ،' إلى أجزاء']
تسمح لك طريقة الانقسام () أيضا بتعيين حد لعدد الانقسامات. للقيام بذلك ، يمكن تمرير الحد الأقصى لعدد الانقسامات كوسيطة ثانية:
الجملة = "طريقة الانقسام () تقسم السلسلة إلى أجزاء"
الكلمات = الجملة.انشق ، مزق ( "" , 2)
طباعة (كلمات)
الناتج:
['طريقة' ، ' سبليت ()' ، 'انشقاقات سلسلة إلى أجزاء']
طريقة الانقسام () هي أداة مريحة للغاية وقوية لمعالجة السلاسل في بايثون. يمكن استخدامه لتقسيم سلسلة إلى كلمات ، أو تقسيم سلسلة إلى أجزاء بواسطة فاصل معين ، أو تحديد عدد الفواصل. نظرا لمرونتها وسهولة استخدامها ، فإن طريقة الانقسام () تستحق التعلم لكل مبرمج بايثون.
التحقق من توازن الأقواس
تتمثل إحدى مهام البرمجة الأكثر شيوعا في التحقق من توازن الأقواس في سلسلة. هذه المهمة هي تحديد ما إذا كانت مجموعة الأقواس في سلسلة متوازنة بشكل صحيح.
تشير مجموعة الأقواس المتوازنة بشكل صحيح إلى أن كل قوس فتح له قوس إغلاق مطابق والعكس صحيح ، وأن الأقواس متداخلة بشكل صحيح داخل بعضها البعض.
على سبيل المثال ، السلسلة "({})" هي المجموعة الصحيحة من الأقواس ، نظرا لأن كل قوس فتح يحتوي على قوس إغلاق مطابق ويتم تداخلها بشكل صحيح داخل بعضها البعض.
ومع ذلك ، فإن السلسلة "({)}" ليست المجموعة الصحيحة من الأقواس ، لأن قوس الفتح "{" له قوس إغلاق") " ، وليس "}".
لحل هذه المشكلة في بيثون ، يمكنك استخدام كومة — بنية البيانات التي تعمل على مبدأ "آخر في ، أولا خارج" (ليفو — آخر في ، أولا خارج).
عند العمل مع الأقواس في سلسلة ، يمكننا استخدام المكدس لتخزين الأقواس الافتتاحية. عندما نواجه قوس إغلاق في سلسلة ، نتحقق مما إذا كان قوس الفتح هو الجزء العلوي من المكدس. إذا كان الأمر كذلك ، فإننا نزيل قوس الفتح من المكدس وننتقل إلى القوس التالي في الصف. إذا لم يكن الأمر كذلك ، فإن مجموعة الأقواس غير متوازنة ، ونتوقف عن التحقق.
Приведенная ниже функция на الثعبان демонстрирует пример реализации проверки сбалансированности скобок:
مواطن_متوازن (سلسلة):
كومة = []
إفتتاح_قوس = ['(', '[', '{']
إغلاق _ أقواس = [')', ']', '}']
أزواج الأقواس = {')': '(', ']': '[', '}': '{'}
لشار في سلسلة:
إذا شار في الافتتاح_قوس:
كومة.إلحاق (شار)
إليف شار في إغلاق الأقواس:
إذا لين (كومة) = = 0 أو كومة [-1]!= أزواج الأقواس[شار]:
العودة كاذبة
كومة.البوب()
عودة لين (كومة) = = 0
تأخذ هذه الوظيفة سلسلة ذات أقواس كوسيطة وتعود صحيحة إذا كانت مجموعة الأقواس في السلسلة متوازنة ، وغير صحيحة.
مثال على استخدام الوظيفة:
سلسلة =" {[()]}"
طباعة(غير متوازن (سلسلة)) # الإخراج: صحيح
سلسلة = "{[()]}}"
طباعة(غير متوازن (سلسلة)) # الإخراج: خطأ
تتيح لك هذه الوظيفة التحقق بكفاءة وسهولة من توازن الأقواس في سلسلة. يمكن أن يكون مفيدا في مجموعة متنوعة من المواقف ، على سبيل المثال ، عند العمل مع التعبيرات الرياضية أو عند التحقق من بناء جملة رمز البرنامج.
باستخدام المكدس
للعثور على أقواس الفتح والإغلاق في سلسلة بايثون ، يمكنك استخدام بنية بيانات تسمى المكدس.
المكدس عبارة عن مجموعة مرتبة من العناصر ، حيث تحدث إضافة عنصر وإزالته فقط من طرف واحد ، يسمى الجزء العلوي من المكدس. هذا يعني أن العنصر الأخير المضاف سيكون أول عنصر محذوف (مبدأ ليفو — آخر دخول ، أول خروج).
إن استخدام المكدس للبحث عن أقواس الفتح والإغلاق على التوالي ، بمعنى ما ، يحاكي عملية مسحها باستخدام كومة حقيقية ملقاة على الموظف ، حيث يصل الجسر العلوي إلى القاعدة الفعلية ، ويعني كل قوس فتح طبقة صاعدة من القالب ، وقوس الإغلاق يعني وقت تشغيل تنازلي.
في بيثون ، هو مضمن في فئة القائمة ، مما يجعلها مثالية للاستخدام كمكدس. تقدم فئة القائمة طرقا مثل إلحاق() لإضافة عناصر إلى المكدس والبوب() لإزالة العنصر الأخير من المكدس.
Рассмотрим пример кода, демонстрирующего использование стека для поиска открывающихся и закрывающихся скобок в строке:
تحقق مواطنه _ أقواس (سلسلة):
كومة = []
إفتتاح_قوس = ["(", "{", "["]
إغلاق _ أقواس = [")", "}", "]"]
لشار في سلسلة:
إذا شار في الافتتاح_قوس:
كومة.إلحاق (شار)
إليف شار في إغلاق الأقواس:
إذا لين (كومة) = = 0:
العودة كاذبة
إليف إغلاق الأقواس.فهرس (شار)!= فتح الأقواس.مؤشر (كومة.البوب()):
العودة كاذبة
عودة لين (كومة) = = 0
# مثال الاستخدام
سلسلة 1=" ({})"
النتيجة 1 = تحقق من الأقواس(سلسلة 1)
طباعة (النتيجة 1) # صحيح
سلسلة 2=" ()}"
النتيجة 2 = تحقق من الأقواس(سلسلة 2)
طباعة (النتيجة2) # خطأ
يأخذ سلسلة ويستخدم المكدس للتحقق مما إذا كانت جميع الأقواس الافتتاحية بالترتيب الصحيح.
تتم تهيئة المكدس بقائمة فارغة. ثم نذهب من خلال كل حرف من السلسلة. إذا كان الحرف هو قوس فتح ، يتم إضافته إلى المكدس. إذا كان الحرف عبارة عن قوس إغلاق ، فإننا نتحقق مما إذا كان يتطابق مع قوس الفتح الأخير في المكدس. إذا كان الأمر كذلك ، فإننا نزيل قوس الفتح الأخير من المكدس. إذا لم يتطابق الحرف مع قوس الفتح الأخير ، فسيتم إرجاع القيمة خطأ.
في نهاية الفحص ، يجب إزالة جميع الأقواس الافتتاحية من المكدس ، ويجب أن يكون طولها 0. إذا كان الأمر كذلك ، يتم إرجاع القيمة الحقيقية. إذا لم يكن المكدس فارغا ، يتم إرجاع القيمة خطأ.
وبالتالي ، باستخدام المكدس ، يمكننا العثور بشكل فعال على أقواس فتح وإغلاق في سلسلة بايثون.
التحقق العودي
في بيثون ، يمكنك تنفيذ وظيفة متكررة للتحقق من فتح وإغلاق الأقواس في سلسلة. Это означает, что функция будет вызывать саму себя для обработки вложенных скобок.
Ниже приведен пример такой функции:
* * * * * * * * * * * :
كومة = []
لشار في سلسلة:
إذا شار في الافتتاح_قوس:
كومة.إلحاق (شار)
إليف شار في إغلاق الأقواس:
إذا لم يتم تكديسها أو فتحها.مؤشر (كومة.البوب ())!= إغلاق الأقواس . الفهرس (شار):
العودة كاذبة
العودة لا كومة
تستخدم هذه الوظيفة مكدسا ، وهو عبارة عن بنية بيانات تسمح لك بإضافة عناصر إلى النهاية واستخراجها من هناك بترتيب عكسي. في حالة حدوث قوس فتح أثناء معالجة سلسلة ، يتم إضافته إلى المكدس ، وفي حالة حدوث قوس إغلاق ، يتم تحديد انتمائه إلى قوس الفتح من المكدس. إذا لم تتطابق الأقواس أو كان المكدس فارغا ، فإن الدالة ترجع خطأ.
بعد معالجة الخط بأكمله ، تتحقق الوظيفة مما إذا كان هناك أي أقواس فتح متبقية على المكدس. إذا كانت الإجابة بنعم ، فهذا يعني أن الأقواس غير متوازنة وأن الوظيفة ترجع خطأ. إذا كان المكدس فارغا ، فهذا يعني أن الأقواس متوازنة وأن الوظيفة تعود بشكل صحيح.
مثال الاستخدام:
السلسلة 1=' ({[]})'
سلسلة 2= '([{}])({})'
سلسلة 3= '({[]})]'
طباعة (تحقق من الأقواس (السلسلة 1)) # الإخراج: صحيح
طباعة (تحقق من الأقواس (السلسلة 2)) # الإخراج: صحيح
طباعة (تحقق من الأقواس (سلسلة3)) # الإخراج: خطأ
يتحقق من سلسلة بأقواس مختلفة. يتم عرض نتيجة كل فحص على الشاشة.
وبالتالي ، يمكن تنفيذ الفحص العودي لأقواس الفتح والإغلاق في سلسلة باستخدام مكدس ووظيفة عودية في بايثون. يتيح لك هذا الأسلوب التحقق بشكل فعال من الأقواس في الهياكل المتداخلة.
عد عدد فتح وإغلاق الأقواس
لحساب عدد أقواس الفتح والإغلاق في سلسلة بلغة برمجة بايثون ، يمكنك استخدام الخوارزمية التالية:
- قم بإنشاء متغيرين ، أحدهما لحساب الأقواس الافتتاحية والآخر لحساب الأقواس الختامية.
- كرر على كل حرف من السلسلة.
- إذا كان الحرف الحالي يساوي قوس الفتح ، فقم بزيادة عداد قوس الفتح بمقدار واحد.
- إذا كان الحرف الحالي يساوي قوس الإغلاق ، فقم بزيادة عداد قوس الإغلاق بمقدار واحد.
- بعد الانتهاء من التكرار ، اطبع قيم عدادات أقواس الفتح والإغلاق.
Пример реализации данного алгоритма на языке الثعبان:
مواطنه العد _ أقواس (إدخال _ سلسلة):
فتح _ أقواس = 0
إغلاق _ أقواس = 0
لشار في الإدخال _ سلسلة:
إذا شار ==" (":
فتح _ أقواس + = 1
أليف شار == ")":
إغلاق _ أقواس + = 1
عودة فتح _ أقواس ، إغلاق _ أقواس
إدخال _ سلسلة = " ((بعض) (سلسلة) (مع أقواس (متداخلة))"
فتح ، مغلق = عدد الأقواس(سلسلة الإدخال)
طباعة (و " Opened: {فتح}")
طباعة (و " Закрывающихся скобок: {مغلق}")
في هذا المثال ، تقبل دالة الكونت _ الأقواس سلسلة الإدخال _ السلسلة كمدخل وتعيد مجموعة تحتوي على عدد أقواس الفتح والإغلاق. ثم ، بعد استدعاء الوظيفة ، يتم عرض قيم عدادات أقواس الفتح والإغلاق على الشاشة.
عند تشغيل هذا الرمز على بايثون ، ستجد السلسلة "((بعض) (سلسلة) (مع أقواس (متداخلة))" 9 أقواس فتح و 9 أقواس إغلاق.
باستخدام هذه الخوارزمية ، يمكنك حساب عدد أقواس الفتح والإغلاق بشكل فعال في سلسلة بلغة برمجة بايثون.
إنها طريقة مضمنة في بايثون تسمح لك بحساب عدد مرات حدوث قيمة محددة في سلسلة أو في قائمة.
لسلسلة على النحو التالي:
سلسلة.العد (القيمة [،البداية [،النهاية]])أين:
- - هذه سلسلة تحتاج فيها إلى حساب تكرارات القيمة;
- - هذه هي القيمة التي يجب حسابها;
- (المعلمة الاختيارية) هو الفهرس الذي يبدأ منه البحث عن القيمة في السلسلة;
- (المعلمة الاختيارية) هو الفهرس حيث ينتهي البحث عن القيمة في السلسلة.
إرجاع عدد صحيح-عدد تكرارات القيمة في السلسلة. إذا لم يتم العثور على القيمة في السلسلة ، ترجع الطريقة 0.
:
مثال 1:
سلسلة = " مرحبا ، العالم!"
العد1 = سلسلة.العد ("س")
طباعة (العد1) # الإخراج: 2
في هذا المثال ، نحسب عدد الأحرف " س "في السلسلة" مرحبا ، العالم!"واحصل على النتيجة 2.
المثال 2:
سلسلة = " مرحبا ، العالم!"
العد2 = سلسلة.العد ("ل" ، 0 ، 7)
طباعة (العد2) # الإخراج: 2
نحن هنا نبحث عن الحرف " ل "في السلسلة" مرحبا ، العالم!"في النطاق من 0 إلى 7 (ضمنا). ترجع الطريقة النتيجة 2 ، نظرا لوجود حرفين "ل" في هذا الفاصل الزمني.
ويمكن أيضا أن تستخدم لحساب عدد من التكرارات من العناصر في القائمة:
المثال 3:
قائمة = [1, 2, 3, 2, 2]
العد3 = قائمة.عدد (2)
طباعة (العد3) # الإخراج: 3
في هذا المثال ، نقوم بإنشاء قائمة [1, 2, 3, 2, 2] ونحن نعول على عدد من العناصر مع قيمة 2. ستكون النتيجة الرقم 3 ، نظرا لوجود ثلاثة عناصر في القائمة بقيمة 2.
، يمكننا بسهولة حساب عدد مرات حدوث قيمة في صف أو في قائمة. يمكن أن يكون هذا مفيدا لحل المشكلات والتطبيقات المختلفة لبرمجة بايثون.
باستخدام حلقة
يمكنك استخدام حلقة للبحث عن فتح وإغلاق الأقواس في سلسلة بيثون.
Один из простых способов — пройти по каждому символу строки с помощью цикла и проверить, является ли этот символ открывающейся или закрывающейся скобкой.
Пример кода:
def find_brackets(string):
opening_brackets = ['(', '[', '{']
closing_brackets = [')', ']', '}']
stack = []
for char in string:
if char in opening_brackets:
stack.append(char)
elif char in closing_brackets:
if not stack:
return False
if closing_brackets.index(char) == opening_brackets.مؤشر (كومة [-1]):
كومة.البوب()
آخر:
العودة كاذبة
عودة لين (كومة) = = 0
# مثال على استخدام
وظيفة السلسلة = "((1 + 2) * 3"
النتيجة = العثور على أقواس (سلسلة)
طباعة (نتيجة) # مخرجات كاذبة
في هذا المثال ، نتصفح كل حرف في السلسلة ونتحقق مما إذا كان هذا الحرف هو قوس فتح أو إغلاق. إذا كان قوس فتح ، نضيفه إلى المكدس. إذا كان قوس إغلاق ، فإننا نتحقق مما إذا كان يطابق قوس الفتح الأخير في المكدس. إذا كان هناك تطابق ، فإننا نزيل قوس الفتح الأخير من المكدس. إذا لم يكن هناك تطابق أو كان المكدس فارغا ، فإن السلسلة لها ترتيب قوس غير صحيح.
في نهاية الحلقة ، نتحقق مما إذا كان هناك أي أقواس مفتوحة متبقية على المكدس. إذا كانت الإجابة بنعم ، فهذا يعني أنه كانت هناك أقواس فتح في السلسلة بدون أقواس الإغلاق المقابلة ، ونعود خطأ. إذا كان المكدس فارغا ، فهذا يعني أنه تم إغلاق جميع الأقواس بشكل صحيح ، ونعود صحيحا.
وبالتالي ، يتيح لك استخدام حلقة العثور على أقواس الفتح والإغلاق في سلسلة بايثون والتحقق من موقعها الصحيح.
سؤال وجواب
كيف يمكنني العثور على فتح وإغلاق الأقواس في سلسلة بيثون?
للبحث عن أقواس الفتح والإغلاق في سلسلة بايثون ، يمكنك استخدام عداد سيزداد عند اكتشاف قوس فتح وينخفض عند اكتشاف قوس إغلاق. إذا أصبح العداد سالبا عند المرور عبر خط أو لا يساوي الصفر بعد نهاية السطر ، فسيتم وضع الأقواس بشكل غير صحيح.
كيف يمكنني التحقق من أن جميع الأقواس تفتح وتغلق على التوالي?
يمكنك استخدام مكدس للتحقق من أن جميع الأقواس تفتح وتغلق على التوالي. عند المرور عبر صف ، إذا التقينا بقوس فتح ، نضعه على المكدس. إذا واجهنا قوس إغلاق ، فإننا نتحقق من أنه يتوافق مع القوس العلوي في المكدس. إذا كانت الإجابة بنعم ، فقم بإزالة القوس العلوي من المكدس. إذا تبين أن المكدس فارغ بعد نهاية الممر عبر الخط ، فإن جميع الأقواس متوازنة ، وإلا فهناك أقواس غير مقترنة في السطر.
كيف يمكنني العثور على مواقف فتح وإغلاق الأقواس في سلسلة بيثون?
للعثور على مواضع أقواس الفتح والإغلاق في سلسلة بايثون ، يمكنك استخدام حلقة تمر عبر جميع أحرف السلسلة. إذا وجدنا قوسا افتتاحيا ، فإننا نتذكر موضعه في متغير منفصل أو نضيفه إلى القائمة. عند اكتشاف قوس إغلاق ، نتحقق من أن الحرف السابق في السلسلة هو قوس فتح ، ثم نتذكر موضعه. وبالتالي ، نحصل على قائمة بمواضع أقواس الفتح والإغلاق في السلسلة.
كيف يمكنني العثور على مجموع كل فتح وإغلاق الأقواس في سلسلة بيثون?
للعثور على مجموع كل أقواس الفتح والإغلاق في سلسلة بايثون ، يمكنك الإعلان عن متغيرين: أحدهما لفتح الأقواس والآخر لإغلاق الأقواس. ثم ننتقل إلى جميع أحرف السلسلة ونزيد المتغير المقابل عند اكتشاف قوس فتح أو إغلاق. نتيجة لذلك ، نحصل على مجموع أقواس الفتح والإغلاق في السلسلة.