জ্যাক সি প্রোগ্রামিংয়ের ভাষা পছন্দ V=a*b*h;
করে তবে মানগুলি গুণিত করতে পছন্দ লিখতে পছন্দ করে না।
তিনি V=abh;পরিবর্তে লিখতে চান , abhপ্রতীক int a, b, h;সংজ্ঞায়িত হওয়ার পরে প্রতীককে সংজ্ঞায়িত করার বিষয়ে কেন সংকলন করা উচিত , যাতে আমরা গুণন করতে পারি?
তাকে বর্তমানের স্কোপে সংজ্ঞায়িত ভেরিয়েবলের সেটটি জানা থাকলে একটি পার্সার কার্যকর করতে সহায়তা করে যা একটি একক গুণ গুণকে বোঝায় provided
সরলতার জন্য, সংখ্যা দ্বারা গুণিত করা (হিসাবে হিসাবে 2*a*b) অ্যাকাউন্টে নেওয়া হয় না, কেবলমাত্র ভেরিয়েবল উপস্থিত হয়।
ইনপুটটি একটি গুণ গুণ টি , টি রেগ এক্সপ্যাক্ট পূর্ণ করে:
[a-zA-Z_][a-zA-Z_0-9]*
এবং একটি পরিবর্তনশীল সেট জেড ।
ভেরিয়েবল সেট জেড ওভার টি শব্দটির একটি পার্সিং পি হ'ল একটি স্ট্রিংটি পরিপূর্ণ করে:
*পি থেকে সমস্ত উপস্থিতি অপসারণের পরে আমরা টি পাই,- হয় জেড থেকে একটি পরিবর্তনশীল নাম বা একক
*অক্ষর দ্বারা বিভক্ত Z থেকে সঠিক পরিবর্তনশীল নাম সমন্বিত ।
সমাধানটি কোনও পদটির সমস্ত বিশদ মুদ্রণ করা উচিত।
নমুনা:
Vars a, c, ab, bc
Term abc
Solution ab*c, a*bc
Vars ab, bc
Term abc
Solution -
Vars -
Term xyz
Solution -
Vars xyz
Term xyz
Solution xyz
Vars width, height
Term widthheight
Solution width*height
Vars width, height
Term widthheightdepth
Solution -
Vars aaa, a
Term aaaa
Solution aaa*a, a*aaa, a*a*a*a
ইনপুট (ভেরিয়েবলের তালিকা এবং শব্দটির তালিকা) ভাষার জন্য উপযুক্ত কোনও উপায়ে সরবরাহ করা যেতে পারে।
আউটপুটটি যে কোনও সংবেদনশীল আকারে হতে পারে (এক লাইন প্রতি পার্সিং বা কমা-বিচ্ছিন্ন তালিকা ইত্যাদি) - তবে এটি স্পষ্ট এবং পড়ার পক্ষে হওয়া উচিত।
কোনও শব্দটির পার্সিং সম্ভব না হলে খালি আউটপুট গ্রহণযোগ্য (
এটি একটি কোড গল্ফ, তাই সংক্ষিপ্ততম কোডটি জয়ী।
a*aaa aaa*aএবং নাab*c c*ab
ab*cযে একটি ভুল পার্স, কারণcকোনও অনুমোদিত ভেরিয়েবল নয়।