আমরা একটি প্যারেনস গ্রুপকে ওপেন পেরেন (
, এটির সাথে মিলে যাওয়া বন্ধন )
এবং তাদের ভিতরে থাকা সমস্ত কিছুই বলে থাকি ।
একটি বাম বন্ধনী গ্রুপ বা স্ট্রিং বলা হয় parenthesly সুষম যদি এটা হয় কিছুই অথবা শুধুমাত্র 2 parenthesly সুষম ডান বন্ধনী গোষ্ঠীগুলি রয়েছে।
উদাহরণ স্বরূপ:
The string "(()())()" is parenthesly balanced
( )() Because it contains exactly 2 parenthesly balanced parens groups
()() The left one is parenthesly balanced because it contains 2 parenthesly balanced parens groups (balanced because they are empty). The right one is parenthesly balanced because it contains nothing.
অনুরূপভাবে:
The string "(()(()))()" is not parenthesly balanced
( )() Because it contains a parens group that is not parenthesly balanced: the left one
()( ) The left one is not balanced because it contains a parens group that is not balanced: the right one
() The right one is not balanced because it only contains one balanced group.
সুতরাং, প্রথমত ভারসাম্যযুক্ত ভারসাম্যযুক্ত স্ট্রিং বা প্যারেন্স গ্রুপের উচিত:
- কিছুই নেই।
- বা কেবল এবং ঠিক 2 প্যারেন্থসલી ভারসাম্যযুক্ত প্যারেনস গ্রুপ ধারণ করে। এটিতে অন্য কিছু থাকতে হবে না।
টাস্ক:
আপনার টাস্কটি এমন একটি ফাংশন বা প্রোগ্রাম লিখতে হয় যা প্রদত্ত স্ট্রিংটি প্রথমত ভারসাম্যপূর্ণ কিনা তা পরীক্ষা করে।
ইনপুট:
ইনপুট হ'ল একটি স্ট্রিং বা অক্ষরের তালিকা বা অনুরূপ কিছু। আপনি ধরে নিতে পারেন যে স্ট্রিংটিতে কেবলমাত্র অক্ষর থাকবে '('
এবং ')'
। এছাড়াও আপনি অনুমান করতে পারেন প্রতিটি খোলা paren (
তার ম্যাচিং বন্ধ paren থাকবে )
, তাই মত স্ট্রিং সম্পর্কে চিন্তা করবেন না "((("
বা ")("
বা "(())("
...
নোট: যেহেতু তার মন্তব্য নিচে মধ্যে @DigitalTrauma উল্লেখ, এটা subtitute করতে ঠিক আছে ()
অন্য অক্ষর দ্বারা কম্বো (যেমন <>
, []
, ...), যদি কিছু ভাষায় পলায়নের মত অতিরিক্ত কাজ ঘটাচ্ছে এর
আউটপুট:
স্ট্রিংটি প্রথমত ভারসাম্যযুক্ত কিনা তা সংকেত দেওয়ার জন্য যা কিছু আছে (সত্য বা মিথ্যা, 1 বা 0, ...)। আপনার ফাংশন / প্রোগ্রামটি যা প্রত্যাশা করে তা আপনার উত্তরে অন্তর্ভুক্ত করুন।
উদাহরণ:
"" => True
"()()" => True
"()(()())" => True
"(()(()(()())))(()())" => True
"(((((((()())())())())())())())()" => True
"()" => False
"()()()" => False
"(())()" => False
"()(()(())())" => False
"(()())(((((()())()))())())" => False
"()(()()()())" => False
"()(()(()())()())" => False
শেষ দুটি উদাহরণ সত্যিই একটি পার্থক্য তৈরি!
ভাগ্য সুপ্রসন্ন হোক!
"(()())()"
হিসাবে প্রতিনিধিত্ব করা হবে [0, 0, 1, 0, 1, 1, 0, 1]
। এটি ইনপুটটিকে অক্ষর কোডে রূপান্তর করতে এবং তারপরে বিয়োগের প্রয়োজনীয়তা সরিয়ে ফেলবে।