Xkcd কমিক দ্বারা অনুপ্রাণিত হয়ে আমরা ইতিমধ্যে একটি মেটা-রেজেক্স-গল্ফ সমস্যা পেয়েছি
তবে, এই রেজেক্স গল্ফটিও মজাদার দেখাচ্ছে! আমি মার্কিন যুক্তরাষ্ট্র এবং ইতালি অঞ্চলের মধ্যে পার্থক্য করতে চাই। কেন? আমি উভয় দেশের নাগরিক, এবং আমি সবসময় এই পদ্ধতিতে সমস্যা দেখা * ।
ইতালি অঞ্চলগুলি হয়
Abruzzo, Valle d'Aosta, Puglia, Basilicata, Calabria, Campania, Emilia-Romagna, Friuli-Venezia Giulia, Lazio, Liguria, Lombardia, Marche, Molise, Piemonte, Sardegna, Sicilia, Trentino-Alto Adige/Südtirol, Toscana, Umbria, Veneto
এবং মার্কিন যুক্তরাষ্ট্র রাজ্য হয়
Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina, South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia, Wisconsin, Wyoming
আপনার কাজ হ'ল একটি প্রোগ্রাম লিখুন যা এই তালিকাগুলিকে নিয়মিত ভাবের সাথে আলাদা করে। এটি একটি নতুন খেলা, সুতরাং এখানে
বিধি
- তালিকার মধ্যে পার্থক্যটি একটি একক নিয়মিত নিয়মিত অভিব্যক্তির সাথে করা উচিত।
- আপনার স্কোর সেই নিয়মিত প্রকাশের দৈর্ঘ্য, আরও ভাল।
পরিষ্কার হওয়ার জন্য: সমস্ত কাজ অবশ্যই নিয়মিত প্রকাশের মাধ্যমে করা উচিত - কোনও ফিল্টারিং, কোনও প্রতিস্থাপন, কিছুই নেই ... এমনকি যদি সেগুলিও নিয়মিত প্রকাশের সাথে সম্পন্ন হয়। এটি হ'ল ইনপুটটি নিয়মিত অভিব্যক্তিতে সরাসরি পাস করা উচিত এবং কোডের পরবর্তী অংশগুলি দ্বারা কেবল বাইনারি উত্তর (ম্যাচ / কোনও মিল নেই) ব্যবহার করা যেতে পারে। ইনপুটটি ম্যাচিং এক্সপ্রেশন ব্যতীত কখনই পরিদর্শন বা পরিবর্তন করা উচিত নয়। ব্যতিক্রম : রুবির সাথে সদৃশ কিছু দিয়ে একটি নিউলাইন খাওয়া chomp
ভাল।
আপনার প্রোগ্রামটি স্টিডিনের যে কোনও একটি তালিকা থেকে একক প্রবেশ (বিকল্প হিসাবে অনুসরণ করা \n
বা EOF
এটি সহজ করে তোলে যদি) নেওয়া উচিত এবং সেই তালিকাটির নামটি স্টাডআউট প্রিন্ট করা উচিত। এই ক্ষেত্রে, আমাদের তালিকার নাম Italy
এবং USA
।
আপনার কোড পরীক্ষা করতে, কেবলমাত্র এটির মাধ্যমে উভয় তালিকাগুলি চালান। আচরণটি স্ট্রিংগুলির জন্য অপরিজ্ঞাত হতে পারে যা তালিকায় আসে না।
স্কোরিং ইস্যু
এটি ভাষা-ভাষা ভিত্তিতে করতে হতে পারে। পার্লে,
m/foobarbaz/
একটি মিলে যাওয়া নিয়মিত প্রকাশ। তবে পাইথনে,
import re
re.compile('foobarbaz')
একই জিনিস। আমরা পাইথনের জন্য উদ্ধৃতিগুলি গণনা করব না, তাই আমি বলি যে আমরা পার্লের m/
ফাইনাল এবং ফাইনাল গণনা করি না /
। উভয় ভাষায়, উপরের 9 টি স্কোর পাওয়া উচিত।
অভিজিৎ উত্থাপিত পয়েন্টটি পরিষ্কার করতে , আপনি গতিশীলভাবে তৈরি করলেও মিলের অভিব্যক্তিটির আসল দৈর্ঘ্য হল স্কোর। উদাহরণস্বরূপ, যদি আপনি একটি যাদুবিদ্যার অভিব্যক্তি খুঁজে পান m
,
n="foo(bar|baz)"
m=n+n
তারপরে আপনার 12 টি স্কোরের রিপোর্ট করা উচিত নয়: m
দৈর্ঘ্য 24 আছে And এটি নিয়মিত অভিব্যক্তিতে পাস করার আগে ইনপুটটি পড়তে হবে।
উদাহরণ সেশন
input> Calabria
Italy
input> New Hampshire
USA
input> Washington
USA
input> Puglia
Italy
* আসলে, এটি একটি মিথ্যা। এ নিয়ে আমার কখনই কোনও ঝামেলা হয়নি।
USA
এমন স্ট্রিংয়ের ক্ষেত্রে একজনকে ফিরে আসতে দেয় , সুতরাং আপনাকে কেবল ইতালিয়ান অঞ্চলগুলি পরীক্ষা করতে হবে এবং USA
অন্যথায় ফিরে যেতে হবে।