একটি শব্দ মেঘ স্থানান্তর


18

পটভূমি

আমি একটি সুন্দর শব্দ মেঘ তৈরি করতে চেয়েছিলাম, এটি:

these    are
    words   

  floating  

আমি (x,y)প্রতিটি শব্দের প্রথম অক্ষরের সংকেত গণনা করেছি, সেগুলি আমার শব্দ মেঘ জেনারেটরে প্লাগ করে রেখেছি এবং এটির কাজটি করতে দেব। যাইহোক, আমি দুর্ঘটনাক্রমে-পরিচালনাগুলি ব্যবহার (y,x)করেছি, সুতরাং ফলাফলটি এরকম দেখাচ্ছে:

these      

   floating

 words     



are        

যেহেতু আমি স্থানাঙ্কগুলি পুনরায় গণনা করতে খুব অলস, তাই আপনার প্রয়োজন আমার জন্য ক্লাউড শব্দটি স্থানান্তর করা।

ইনপুট

আপনার ইনপুটটি ছোট হাতের ASCII অক্ষর এবং স্পেসগুলির একটি আয়তক্ষেত্রাকার গ্রিড। এর অর্থ হ'ল প্রতিটি সারিতে একই দৈর্ঘ্যের জন্য ফাঁকা স্থান রয়েছে। ইনপুটটি মাল্টি-লাইন স্ট্রিং বা স্ট্রিংগুলির একটি অ্যারে হিসাবে নেওয়া যেতে পারে।

একটি শব্দ চিঠির একটি অনুভূমিক সেগমেন্ট, এবং তার অবস্থান হয় (x,y)তার বামদিকের অক্ষর, গ্রিড হচ্ছে উপরের বাম দিকের কোণে -coordinates (0,0)। সর্বদা কমপক্ষে একটি শব্দ থাকবে এবং সেখানে কোনও পিছনের সারি বা স্পেসের কলাম নেই। তবে স্থানগুলির শীর্ষস্থানীয় সারি বা কলামগুলি উপস্থিত থাকতে পারে।

আউটপুট

আপনার আউটপুট হ'ল অক্ষরগুলির আরেকটি আয়তক্ষেত্রাকার গ্রিড, প্রতিটি শব্দকে পজিশনে (x,y)নিয়ে যাওয়ার মাধ্যমে প্রাপ্ত (y,x)। আপনার আউটপুটটিতে অতিরিক্ত ট্রেলিং সারি বা স্পেসগুলির কলাম থাকতে হবে না । শীর্ষস্থানীয় সারি এবং কলামগুলি অবশ্যই সংরক্ষণ করা উচিত এবং আউটপুট অবশ্যই আয়তক্ষেত্রাকার হতে হবে

আপনি ধরে নিতে পারেন যে এই রূপান্তরটি ওভারল্যাপিং শব্দ তৈরি করে না এবং বেশ কয়েকটি শব্দের একটিতে মিশে না। এর অর্থ হ'ল আউটপুটে প্রোগ্রামটি চালানো আসল ইনপুট তৈরি করে।

বিধি এবং স্কোরিং

আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়।

পরীক্ষার মামলা

স্পষ্টতার জন্য (এবং যেহেতু স্ট্যাক এক্সচেঞ্জ কেবলমাত্র স্থান-রেখাগুলি অপছন্দ করে), প্রতিটি সারিটি পাইপের অক্ষরে শেষ হয় |এগুলি প্রকৃত ইনপুট বা আউটপুটের অংশ নয় এবং আপনার এগুলি সরিয়ে নেওয়া উচিত। আবার নোট করুন যে প্রতিটি আউটপুটে প্রোগ্রাম চালানোও সংশ্লিষ্ট ইনপুট তৈরি করতে পারে।

Input:
oneword|
Output:
oneword|

Input:
  spaces|
Output:
      |
      |
spaces|

Input:
   |
row|
Output:
 row|

Input:
these    are|
    words   |
            |
  floating  |
Output:
these      |
           |
   floating|
           |
 words     |
           |
           |
           |
are        |

Input:
   same|
 the   |
       |
same   |
Output:
   same|
 the   |
       |
same   |

Input:
  some |
words k|
       |
       |
       |
  still|
Output:
 words    |
          |
some still|
          |
          |
          |
 k        |

Input:
   hello   |
  world hey|
what   up  |
Output:
  what|
      |
 world|
hello |
      |
      |
      |
  up  |
 hey  |

Input:
  a b  a d cc|
 g h  huh nng|
  ye dunnn   |
    dud  yo  |
 wha   g     |
  huh heh hah|
Output:
        |
 g  wha |
a ye huh|
 h      |
b  dud  |
  dunnn |
 huh heh|
a   g   |
        |
d  yo   |
 nng hah|
cc      |

উত্তর:


7

পার্ল, 58 বাইট

জন্য +2 যোগ করা হয়েছে -lp

STDIN এ ইনপুট দিন, হিসাবে চালান perl -lp wordcloud.pl

wordcloud.pl:

s/\w+/$l|=$a[pos]|=$"x~-$..$&/eg}for(@a){$_|=$l=~y// /cr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.