Pyth একটি golfing পাইথন উপর ভিত্তি করে ভাষা। এটি প্রতিটি কমান্ডের একটি পৃথক আরটি রয়েছে (এটি স্বীকার করে নেয় এমন আর্গুমেন্টের সংখ্যা) সহ উপসর্গ স্বরলিপি ব্যবহার করে।
আপনার কাজটি হ'ল (অস্তিত্বহীন) পাইথ-জাতীয় ভাষা, পিথের জন্য সিন্ট্যাক্স পরীক্ষক লিখুন।
পিথের সিনট্যাক্স
পিঠে 8 টি সিঙ্গেল-চার আদেশ রয়েছে:
01234()"
01234
প্রত্যেকের সংশ্লিষ্ট সংখ্যার আধ্যাত্মিকতা রয়েছে এবং তাই এর পরে এটির অনেক যুক্তি প্রত্যাশা করে। উদাহরণ স্বরূপ,
400010
একটি সঠিক পিথ প্রোগ্রাম কারণ 4
চারটি আর্গুমেন্ট অনুসরণ করা হয় 0
0
0
এবং এর 10
মধ্যে সর্বশেষটি 1
একক যুক্তি অনুসরণ করে 0
। এটি কল্পনা করতে, আমরা নীচের গাছটি দেখতে পারি:
R
|
4
|
-------------
| | | |
0 0 0 1
|
0
R
মূল নোড যেখানে এটি সম্পর্কে ভাবার বিকল্প উপায় হ'ল প্রতিটি সংখ্যা উপরের গাছে সংশ্লিষ্ট নোডের শিশুদের সংখ্যা বোঝায়।
একাধিক বেস কমান্ড সহ এখানে আরও একটি বৈধ পিথ প্রোগ্রাম রয়েছে:
210010
সংশ্লিষ্ট
R
|
-------------
| |
2 1
| |
--------- 0
| |
1 0
|
0
অন্য দিকে,
3120102100
হয় না একটি সঠিক pith প্রোগ্রাম কারণ প্রাথমিক 3
মাত্র দুটি আর্গুমেন্ট, যা আমরা নিচের গাছ দিকে তাকিয়ে দেখতে পারেন আছে:
R
|
3
|
------------------------ ??
| |
1 2
| |
2 ------
| | |
------ 1 0
| | |
0 1 0
|
0
এরপরে (
একটি আনবাউন্ড করা শুরু হয় এবং আনবাউন্ড করা )
শেষ হয়। আনবাউন্ডেড যে কোনও সংখ্যক আর্গুমেন্ট (লোভের সাথে) নেয় এবং যে কোনও প্যারেন্ট কমান্ডের একক যুক্তি হিসাবে গণ্য হয়। প্রোগ্রামের শেষে এখনও যে আনবাউন্ডেডগুলি খোলা আছে তা স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়। একটি )
কমান্ড একটি ত্রুটি না থাকলে কোনো unboundeds খোলা থাকে - এটা শুধু কিছুই না *।
উদাহরণস্বরূপ, পিথ প্রোগ্রাম
)31(0)0(201000100
গাছের সাথে মিলে যায়
R
|
3
|
------------------------------
| | |
1 0 (
| |
( -----------------------------
| | | | | |
0 2 0 0 1 0
| |
------- 0
| |
0 1
|
0
খালি আনবাউন্ডেজ ঠিক আছে, তাই ()
একটি বৈধ পিথ প্রোগ্রাম।
আনবাউন্ডেড সহ একটি অবৈধ পিথ প্রোগ্রাম
12(010
যেহেতু 2
একমাত্র একটি যুক্তি (আনবাউন্ডেড) পায়।
অবশেষে, "
একটি স্ট্রিং শুরু হয় এবং শেষ হয় যা সর্বদা 0 arity এবং একক যুক্তি হিসাবে গণনা করা হয়, যেমন
2"010""44)()4"
যা কেবল একটি 2
দুটি স্ট্রিং আর্গুমেন্ট "010"
এবং পাস করা হচ্ছে "44)()4"
। আনবাউন্ডজেডগুলির মতো, স্ট্রিংগুলিও খালি থাকতে পারে এবং প্রোগ্রামের শেষে কোনও অনাবৃত স্ট্রিং স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।
* এই অংশটি মূল পাইথের থেকে পৃথক, যা আসলে ক্ষেত্রে কিছু করে যেমন 1)
1-আরটিটি শেষ করে ত্রুটি উত্থাপন করে।
ইনপুট আউটপুট
ইনপুটটি কেবলমাত্র অক্ষর সমন্বিত একক অ-খালি স্ট্রিং হবে 01234()"
। আপনি বিকল্পভাবে ধরে নিতে পারেন যে অতিরিক্ত ট্রেলিং করা নতুন লাইনটি সর্বদা উপস্থিত থাকে। আপনি এই চ্যালেঞ্জের জন্য একটি ফাংশন বা একটি সম্পূর্ণ প্রোগ্রাম লিখতে পারেন।
যদি ইনপুটটি সিনট্যাকটিকভাবে বৈধ পিথ হয়, বা অন্যথায় মিথ্যা মান থাকে তবে আপনার সত্যের মান আউটপুট করা উচিত। সত্যবাদী এবং মিথ্যা মানগুলি অবশ্যই ঠিক করতে হবে, সুতরাং আপনি 1
একটি বৈধ প্রোগ্রাম এবং 2
অন্যটির জন্য আউটপুট নিতে পারবেন না ।
স্কোরিং
এটি কোড-গল্ফ, সুতরাং কয়েকটি বাইটের কোডটি জয়ী।
পরীক্ষার মামলা
Truthy:
0
)
(
"
()
""
10
400010
210010
("")00
3"""""
(0)))0)1)0
2(2(2(0)0)0)0
2"010""44)()4"
)31(0)0(201000100
())2)1))0"3())"))
3("4321("301(0)21100"4")"123"00)40"121"31000""01010
Falsy:
1
1(310
(1)0)
12(010
4"00010"
3120102100
20(2((0)(0)))
2(2(2(0)0)0)01)
4(0102)00)00000
2"00"("00"2(""))
())2)1))0"3())"))
(যা সত্য হওয়া উচিত, আমি মনে করি)।
()210""
প্রচুর পরিমাণে অপস নেই)
[( [2 [0] [1 [0] ] ] [0] [1 [0]] [0] ]
? আপনার যার শাখা রয়েছে 2, 0, 0, 1 এবং 0 - দ্বিতীয়টি সেখানে থাকা উচিত নয়।