আমাকে একটি শহর গড়ে তুলুন


34

কোডাররা সর্বদা বিরক্তিকর 1-মাত্রিক সত্তাগুলিতে অ্যারে সমতল করার চেষ্টা করে এবং এটি আমাকে দু: খিত করে।

আপনার কাজটি হ'ল অক্ষরগুলির একটি স্বেচ্ছাসেবী স্ট্রিংকে উত্তেজিত করা, একটি সুন্দর শহরের আকাশচুম্বী আউটপুট।

স্ট্রিংটি বিবেচনা করুন: aaabbbbbccqrrssstttttttPPw

এটি দেখতে আরও ভাল দেখাচ্ছে:

            tt
            tt
  bb        tt
  bb        tt
aabb      sstt
aabbcc  rrssttPP
aabbccqqrrssttPPww

(ঠিক আছে, হ্যাঁ, চিঠিগুলি এটি আরও নগর-স্কাইলাইন-এরি দেখতে আরও বেশি করে দেওয়ার জন্য নকল করা হয়েছে)।

একটি ইনপুট স্ট্রিং নিন, মিলে যাওয়া অক্ষরের প্রতিটি উপ-অনুচ্ছেদে নকল করুন (প্রয়োজনীয় বর্ণমালার অক্ষর নয়) এবং আমাকে একটি শহর তৈরি করুন!

সংক্ষিপ্ততম কোড বাইট জয়।

আমি আসলে ভেবেছিলাম আমার প্রয়োজনীয়তাগুলি পেরেক দেওয়া হয়েছে তবে কয়েকটি প্রশ্নের উত্তর দিতে:

  • এটি অবশ্যই মাটিতে থাকবে
  • আপনি চাইলে অতিরিক্ত আকাশ থাকতে পারে (ফাঁকা জায়গাগুলির শীর্ষস্থানীয়, ফাঁকা জায়গা ঘিরে) - তবে বিল্ডিংয়ের মধ্যে নয়
  • অক্ষরগুলি স্ট্রিংয়ের অভ্যন্তরে পুনরায় ব্যবহার করা যেতে পারে (একই আর্কিটেকচার, বিভিন্ন অবস্থান)
  • চিঠিগুলি ASCII বলে ধরে নেওয়া হয়েছে, তবে অতিরিক্ত এনকোডিংগুলি সমর্থনকারীদের (ইউটিএফ 8, ইত্যাদি) আরও ফ্লির দেওয়া হবে

3
আমরা কি 90 ডিগ্রি ঘোরানো সিটিস্কেপ আউটপুট দিতে পারি?
Okx

6
চরিত্রগুলি কি আবার কখনও পুনরাবৃত্তি করবে aaabbbbaa?
TheLethalCoder

14
@ ওএক্সএক্স আপনি কি কখনও কোনও শহর 90 ডিগ্রি ঘোরানো দেখেছেন, এটি দেখতে খুব নিরীহ! ;)
টম


10
সাইটে স্বাগতম! ভবিষ্যতের চ্যালেঞ্জগুলির জন্য, আমি তাদের প্রথমে স্যান্ডবক্সে পোস্ট করার পরামর্শ দিচ্ছি যেখানে আপনি চ্যালেঞ্জ হিসাবে পোস্ট করার আগে সম্প্রদায় থেকে ফিডব্যাক পেতে পারেন।
দাদা

উত্তর:


11

05 এ বি 1 ই , 6 বাইট

γ€DζR»

এটি অনলাইন চেষ্টা করুন!

চ্যালেঞ্জের চেয়ে নতুন সংস্করণে, ζএকটি প্রতিস্থাপন ফোর হিসাবে যুক্ত করা হয়েছে.Bø

05 এ বি 1 ই , 8 বাইট

γ€D.BøR»

ব্যাখ্যা:

γ            Convert into a list of consecutive equal elements
 €D          Duplicate each element
   .B        Squarify; pad each element with spaces so that they are the length of the longest element
     ø       Transpose
      R      Reverse (otherwise the city would be upside-down)
       »     Join by newlines

এটি অনলাইন চেষ্টা করুন!


1
মজার ব্যাপার হচ্ছে, জেলি হয়েছে z⁶জন্য .Bø... কিন্তু এর আরও আছে Œgx'2জন্য γ€D>: _>
এরিক Outgolfer

γ.BD)ø˜øR»আমি না তাকিয়ে যা ছিল তা ছিল, €Dভাল উপায়; আমার মনে হচ্ছে আমরা দুজনেই ইনলাইন সদৃশতার জন্য 1-বাইট সমাধানটি মিস করছি।
ম্যাজিক অক্টোপাস উরন

3
@ ম্যাজিক অ্যাক্টপাস ইউরান অপেক্ষা করুন, আপনি চ্যালেঞ্জটি না দেখেও সমাধান করেছেন?
Okx

@ ওকক্স ওয়েল, উত্তরটি না দেখাই বুদ্ধিমানের যেহেতু নিজেই গল্ফ করার পুরো মজাটি কেটে ফেলা হতে পারে।
এরিক আউটগল্ফার

@ এরিকথিউটগলফার এটি একটি রসিকতা ছিল এবং আমার অর্থ হ'ল তিনি চ্যালেঞ্জের বিষয়বস্তু না দেখে সমাধান করেছেন solved
Okx

6

সিজেম , 23 বাইট

qe`::*:__:,:e>f{Se[}zN*

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

qe`::*:__:,:e>f{Se[}zN* Accepts (multi-line?) input
q                       Take all input
 e`::*                  Split into groups of equal elements
      :_                Duplicate each
        _:,:e>          Push maximal length without popping
              f{Se[}    Left-pad each to that length with space strings (NOT space chars, although not a problem here)
                    z   Zip
                     N* Join with newlines

বাহ, একটি সিজেমের উত্তর> _>
মিঃ এক্সকোডার

6

জেলি , 9 বাইট

Œgx'2z⁶ṚY

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা:

Œgx'2z⁶ṚY  Main Link
Œg         Group runs of equal elements
  x        Repeat
   '              the lists
    2                       twice without wrapping
     z⁶    Zip (transpose), filling in blanks with spaces
       Ṛ   Reverse the whole thing so it's upside-down
        Y  Join by newlines

1
আপনি দয়া করে একটি ব্যাখ্যা যোগ করতে পারেন দয়া করে? এখানে কী হচ্ছে তা আমি বুঝতে পারি না: ও
নাথন


@ হাইপারনিউট্রিনো সুন্দর ব্যাখ্যা ...
এরিক দ্য আউটগল্ফার

শুধু নিশ্চিত হওয়া, এটা কি সঠিক? : পি
হাইপারনিউটারিনো

@ হাইপারনিট্রিনো ওয়েল, এটি সম্পূর্ণরূপে উদ্দেশ্য ছিল না ', যেগুলি তাদের তালিকাগুলি নিজেই পুনরাবৃত্তি করানো ছিল এবং তাদের ভিতরে থাকা আইটেমগুলি নয়, সামগ্রিকভাবে এটি ভাল। :)
এরিক আউটগল্ফার

6

পাইথন 3 , 155 136 134 132 বাইট

-১৯ বাইটস @ লেইকিউনকে ধন্যবাদ
-২ বাইট @Fficialaimm এর জন্য ধন্যবাদ
-1 বাইট @ ওয়ানড্রিকেটকে ধন্যবাদ

s=input()+'+'
k=' '*len(s)
a=[]
c=b=''
while s:
 while c in b:b+=c;c,*s=s
 a+=b+k,b+k;b=c
for r in[*zip(*a)][:0:-1]:print(*r,sep='')

এটি অনলাইন চেষ্টা করুন!



5

জাভা 8, 412 400 330 324 312 319 বাইট

-6 বাইটস ভিজ্যুমেলন -২২
বাইট কেভিন ক্রুইজসেনকে ধন্যবাদ জানায়
তবে +১১ বাইট কারণ আমি বাইট গণনায় আমদানিগুলি অন্তর্ভুক্ত করতে ভুলে গেছি।

import java.util.*;x->{Map m=new HashMap(),n;int l=x.length(),i=l,v,y,h=0,d=1;char c,k;for(;i-->0;m.put(c,d=m.get(c)!=null?d+1:1),h=d>h?d:h)c=x.charAt(i);for(y=h;y>0;y--){n=new HashMap(m);for(i=0;i<l;i++)if(n.get(k=x.charAt(i))!=null){v=(int)m.get(k);System.out.print((y>v?"  ":k+""+k)+(i==l-1?"\n":""));n.remove(k);}}}

এটি অনলাইন চেষ্টা করুন!


1
গল্ফিং জাভা এবং সি # (আমার বিভাগ) দুর্দান্ত মজাদার! এটা রেখে দিন! পরীক্ষিত নয়, তবে আমি মনে করি আপনি লুপগুলি পুনরায় চালু করে কয়েকটি বাইট সংরক্ষণ করতে পারেন: আপনি প্রাক-বরাদ্দ করতে পারেন i=0, বা আরও ভাল i=l, এবং গণনা করতে পারেন for(;i-->0;h=d>h?d:h)(এবং h=সেখানে বিটটি স্টাফ করুন )। একই ব্যাক-কাউন্টিং অভ্যন্তরীণ লুপের জন্যও কাজ করবে। ভেতরের ifএছাড়াও ধনুর্বন্ধনী জন্য কোন প্রয়োজন আছে {}। এবং সর্বদা ক্লান্ত থাকুন <=বা >=, আপনি তিনটি ঘুরিয়ে ঘুরিয়ে >এবং একটি বাইট সংরক্ষণ করতে পারেন ।
ভিজুয়ালমেলন

ধন্যবাদ, আমি আপনার টিপসের জন্য কোডটি বন্ধ করে আরও 6 বাইট শেভ করতে পারি। ঠিক আছে, আমি মনে করি আমি জাভা গল্ফিংয়ের সাথেই থাকব যেহেতু আমি আসলে এটি পছন্দ করি;)।
টোমিটার

1
পিপিসিজিতে আপনাকে স্বাগতম! আমার ভয় প্রয়োজনীয় কারণে 329 (+19 বাইট বাইট গোনা বৃদ্ধি করতে হবে নই import java.util.*;জন্য Mapএবং HashMap, আমদানি বাইট গোনা অংশ আর -1 trailing সেমিকোলন, যা নয় সরিয়ে বাইট-কাউন্টের অংশ)।
কেভিন ক্রুইজসেন


1
পরিবর্তনের সংক্ষিপ্তসার: HashMap<>HashMap; Map n=,nএবং n=; m.put(c,d=m.get(c)!=null?d+1:1);বন্ধনী থেকে মুক্তি পেতে জন্য লুপ ভিতরে; আধা-কোলন এবং লুপের বন্ধনীগুলি থেকে মুক্তি পাওয়ার জন্য k=x.charAt(i)inside if(n.get(k)!=null)আবার, স্বাগতম এবং দুর্দান্ত উত্তর! আমার কাছ থেকে +1 এছাড়াও, যদি কোন কারণে আপনার এটা এখনো দেখা যায়: টিপস জাভা golfing জন্য এবং <কোনো ভাষা> এ golfing জন্য টিপস মাধ্যমে পড়া আকর্ষণীয় হতে পারে।
কেভিন ক্রুইজসেন

5

জাপট , 19 18 15 13 12 বাইট

প্রতিটি লাইনের পিছনে স্থান অন্তর্ভুক্ত করে।

ò¦
íU c ·z w

এটা পরীক্ষা করো


ব্যাখ্যা

         :Implicit input of string U
ò        :Split U to an array by ...
¦        :   checking for inequality between characters.
í        :Pair each item in U with...
U        :   The corresponding item in U (i.e, duplicate each string)
c        :Flatten the array (í creates an array of arrays).
·        :Join to a string with newlines.
z        :Rotate 90 degrees.
w        :Reverse.
         :Implicit output of resulting string.

4

গণিত, 150 বাইট

(z=Characters[v=#];f=CharacterCounts[v][#]&/@(d=Union@z);Row[Column/@Map[PadLeft[#,Max@f,""]&,Table[Table[d[[i]]<>d[[i]],f[[i]]],{i,Length@d}],{1}]])&

4

আর , 135 বাইট

e=rle(sub('(.)','\\1\\1',strsplit(scan(,''),'')[[1]]));write(sapply(sum(e$l|1):1,function(x)ifelse(e$l>=x,e$v,'  ')),'',sum(e$l|1),,'')

এটি অনলাইন চেষ্টা করুন!

স্টাডিনের কাছ থেকে পড়ে, স্টাডআউটে লিখেছেন (একটি ট্রেলিং নিউলাইন সহ)।

ব্যাখ্যা:

  • rle অক্ষরের রেখাংশের দৈর্ঘ্য এবং প্রতিটি টাওয়ারের উচ্চতা সন্ধান করে।
  • দ্য subঅভিব্যক্তি তার ডবল সঙ্গে প্রতিটি অক্ষর প্রতিস্থাপন (তাই আমি সংলগ্ন সূচকের একসঙ্গে সেটিং সম্পর্কে গোবর করতে হয়নি)
  • sapply একটি অ্যারে প্রদান করে (এই ক্ষেত্রে একটি ম্যাট্রিক্স):
    • sum(e$l|1)স্বতন্ত্র অক্ষরের সংখ্যা; আমরা উপর থেকে নীচে যেতে
    • ifelse( ... ) একটি vectorized হয় if...else যা আমাদের টাওয়ার এবং ডাবল স্পেসের ম্যাট্রিক্স তৈরি করতে দেয়
    • write বিন্যাসে কয়েকটি অপশন সহ কনসোলকে লিখেছেন।



2

এমএটিএল , 15 বাইট

'(.)\1*'XXtvc!P

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

'(.)\1*' % Push string to be used as regexp pattern
XX       % Implicit input. Regexp matching. Pushes row cell array of matching substrings
t        % Duplicate
v        % Concatenate vertically
c        % Convert to char. This reads cells in column-major order (down, then across)
         % and produces a 2D char array, right-padding with spaces
!        % Transpose
P        % Flip vertically. Implicitly display

2

কাঠকয়লা , 40 বাইট:

A⟦⟦ω⟧⟧λFθ¿⁼ι§§λ±¹¦⁰⊞§λ±¹ι⊞λ⟦ι⟧FλF²↑⁺⪫ιω¶

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। চিঠিটি প্রতিবার পরিবর্তিত হওয়ার সাথে সাথে ইনপুট স্ট্রিংয়ের উপরে আমি একটি সাধারণ লুপটি চেষ্টা করেছি, তবে 5 টি বাইট সংরক্ষণ করার সাথে সাথে আমি এই তালিকা তৈরির পদ্ধতিতে স্যুইচ করেছি। ব্যাখ্যা: ভেরিয়েবল lইনপুট অক্ষরের একটি নেস্টেড তালিকা রয়েছে। অক্ষরগুলি যা বর্তমান সর্বশেষ তালিকার উপাদানের সাথে মেলে সর্বশেষ তালিকার দিকে ধাক্কা দেয় অন্যথায় character অক্ষরের জন্য একটি নতুন সাবলিস্ট তৈরি করা হয়। এরপরে প্রতিটি সাবলিস্টে অক্ষরগুলিতে যোগদান করা থেকে যায় যাতে তারা দু'বার উল্লম্বভাবে মুদ্রণ করা যায়।


2

সি, 259 231 বাইট

গল্ফ কোড

#define v a[1][i
i,k,l,x,h,w;main(char*s,char**a){for(;v];w+=2*!x,s=v++],h=x>h?x:h)x=(s==v])*(x+1);h++;s=malloc((x=h++*++w+1)+w);memset(s,32,h*w);for(i=k;v];s[x+1]=s[x]=k=v++],x=k==v]?x-w:(h-1)*w+l++*2+3)s[i*w]=10;printf("%s",s);}

ভার্বোজ কোড

//Variable Explanations:
//i - increment through argument string, must beinitialized to 0
//k - increment through argument string, must be initialized to 0
//l - record x coordinate in return value, must be initialized to 0
//x - record the actual character position within the return string
//arrheight - the height of the return string
//arrwidth - the width of the return string
//arr - the return string
//argv - the string containing the arguments
#define v argv[1][i

i,k,l,x,arrheight,arrwidth;

main(char*arr,char**argv){
  for(;v];                                 //For Length of input
    arrwidth+=2*!x,                        //increment width by 2 if this char is not the same as the last
    arr=v++],                              //set arr to current char
    arrheight=x>arrheight?x:arrheight      //see if x is greater than the largest recorded height
  )x=(arr==v])*(x+1);                     //if this character is the same as the last, increment x (using arr to store previous char)
  arrheight++;                             //increment height by one since its 0 indexed
  arr=malloc((x=arrheight++*++arrwidth+1)+arrwidth); //create a flattened array widthxheight and set x to be the bottom left position
  memset(arr,32,arrheight*arrwidth);       //fill array with spaces
  for(i=k;v];                              //For Length of input
    arr[x+1]=arr[x]=k=v++],                //set x and x+1 positions to the current character, store current character in i
    x=k==v]?x-arrwidth:(arrheight-1)*arrwidth+l++*2+3 //if next char is same as current move vertically, else set x to bottom of next column
  )arr[i*arrwidth]=10;                     //Add new lines to string at end of width

  printf("%s",arr);                        //output string

}

জিসিসি দিয়ে সংকলিত, কোনও বিশেষ পতাকা নেই

সম্পাদন করা

অ্যাডেলফাসের জন্য 28 বাইট সংরক্ষণ করা হয়েছে। তার পরিবর্তন আমাকে একটি সংজ্ঞা তৈরি করতে দেয়। এবং আমি যখন লুপগুলি তৈরি করেছিলাম তখন লুপগুলি পুনরায় সাজিয়ে প্রতিটি 2 বাইট সংরক্ষণ করতে পারি। আমি একটি ইস্যুও স্থির করেছিলাম যেখানে ইনপুটে শেষ চরিত্রটি সিঙ্গলটন না হলে কোডটি ভেঙে যায়। কোডটি কেবলমাত্র একটি অনন্য চিঠি থাকলে ব্যর্থ হবে তবে অন্য সমস্ত ক্ষেত্রে কাজ করা উচিত।


নিস! তবে গল্ফযুক্ত সংস্করণটি কোনও কারণে স্বেচ্ছাচারিত ইনপুট নিয়ে কাজ করছে বলে মনে হচ্ছে না। নমুনা ইনপুট থেকে চূড়ান্ত "ডাব্লু" কে অপসারণ করা কিউস হারিয়েছে এবং স্ট্রিংটির পুনরাবৃত্তি ঘটবে। নিশ্চিত যে এটি কিছু ছোট ...
অ্যাডেলফাস

এছাড়াও while (i < strlen(argv[1]))থেকে সংক্ষিপ্ত করা যেতে পারে while (argv[1][i])যতক্ষণ না নাল চরিত্র লুপ -
adelphus

@ অ্যাডেলফাস আকর্ষণীয়, আমি যখন সুযোগ পাব আগামীকাল চেষ্টা করব। আমি প্রদত্ত পরীক্ষার কেস (অলস আমি জানি) ব্যতীত অন্য কিছু পরীক্ষা করিনি।
dj0wns

এটি আসলে একটি টনে সহায়তা করেছিল, আমি সমস্যাটি ঠিক করতে এবং প্রায় 30 বাইট হ্রাস করতে সক্ষম হয়েছি!
dj0wns

1

বীচি , 22 বাইট

21 বাইট কোডের, -lপতাকা জন্য +1 ।

Ya@`(.)\1*`RV:yWVyZDs

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

                       a is 1st cmdline arg; s is space (implicit)
 a@`(.)\1*`            Using regex, create list of runs of same character in a
Y                      Yank that into y variable
              yWVy     Weave (interleave) y with itself to duplicate each item
                  ZDs  Zip to transpose, with a default character of space filling gaps
           RV:         Reverse the resulting list (with the compute-and-assign
                        meta-operator : being abused to lower the precedence)
                       Auto-print, one sublist per line (implicit, -l flag)

1

কোয়াডস , 15 + 1 = 16 বাইট

1পতাকাটির জন্য +1 বাইট ।

⊖⍵
(.)\1*
2/⍪⍵M

এটি অনলাইন চেষ্টা করুন!

⊖⍵ উল্টোদিকে উল্টিয়ে পোস্ট-প্রক্রিয়া

(.)\1* অভিন্ন চরিত্রের রান

2/⍪⍵M columnified নকল এম atch

1পতাকা ফলাফল একসঙ্গে মিশে গিয়ে তৈরি করা হয়।


1

হাস্কেল, 144 বাইট

f s=let x=groupBy(==)s;l=length;m=maximum(map l x)in concatMap(++"\n")$reverse$transpose$concat[[z,z]|z<-(map(\y->y++(replicate(m-(l y))' '))x)]

আমি এর চেয়ে বেশি ভালো করতে পারছি বলে আমি যথেষ্ট আত্মবিশ্বাসী, তবে আপাতত আমি এটাই সবচেয়ে ভালভাবে সামনে আসতে পারি।


1
খারাপ খবর প্রথমে: আপনি ফাংশনগুলি ব্যবহার করেন Data.Listযা থেকে ডিফল্টরূপে সুযোগ নেই। হয় আপনি যোগ আছে import Data.List(যেমন থেকে ভাষা পরিবর্তন বাইট গণনা বা একটি Haskell, পরিবেশ যা ডিফল্টভাবে তা অন্তর্ভুক্ত করে উল্লেখ Haskellকরার Haskell (lambdabot)ব্যবহার প্যাটার্ন পরিবর্তে বেঁধে ভেরিয়েবল রক্ষীদের: - ক। কিছু টিপস) letএবং / অথবা ঘোষণা সাহায্যকারী ফাংশন সরাসরি: l=length;f s|x<-groupBy(==)s,m<-... =concatMap। খ) map l xহয় l<$>x, গ) concatMap("++\n"হয় unlines। d) groupBy(==)ঠিক আছে group। ঙ) concatহয় id=<<। আপনি mকেবল একবার ব্যবহার করুন , তাই এটির ইনলাইন করুন
নিমিম

1
... চ) ()আশেপাশের দরকার নেই l y, replicate ... ' 'এবং map ... x। সব সব: import Data.List;l=length;f s|x<-group s=unlines$reverse$transpose$id=<<[[z,z]|z<-map(\y->y++replicate(maximum(l<$>x)-l y)' ')x]
নিমি

1
groupBy(==)= group, পর্যাপ্তরূপে আমি নিশ্চিত না যে একটি প্রিলিডে আছে এবং অন্যটি নেই। concatMapলিখিত যাবে >>=, এবং mapযেমন infixed যাবে <$>, এবং concat[[z,z]|z<-…]হতে পারে (replicate 2)=<<…বা(\z->[z,z])=<<…
Bergi

: আপনি @ Bergi এর চমৎকার ডগা থেকে আরো এক বাইট বন্ধ শেভ করতে (\z->[z,z])হয় (:)<*>pure, অর্থাত্...transpose$(:)<*>pure=<<map(\y...)x
nimi


1

রুবি , 116 বাইট

->s{a=s.scan(/(.)(\1*)/).map{|x,y|[x,y.size+1]}.to_h
m=a.values.max
m.times{|i|puts a.map{|k,v|v+i<m ?'  ':k*2}*''}}

এটি অনলাইন চেষ্টা করুন!


puts a.map{...} সঙ্গে প্রতিস্থাপন করা যেতে পারে p(a.map{})
ফিলিপ বার্তুজি

p উদ্ধৃতি অক্ষরগুলি আউটপুট দেবে, সুতরাং এটি এখানে উপযুক্ত নয়
অ্যালেক্স

ওহ, বাহ, ধন্যবাদ - তুমি দৈনন্দিন শিখতে stackoverflow.com/a/1255362/2047418
ফিলিপ Bartuzi


0

কিউ / কেডিবি +, 53 বাইট

সমাধান:

{(|)(+)(,/)(max(#:)each c)$(+)2#(,)c:((&)differ x)_x}

উদাহরণ:

 q){(|)(+)(,/)(max(#:)each c)$(+)2#(,)c:((&)differ x)_x}"BBPPPPxxGGGGKKKKKKKkkkkEEeeEEEeeEEEEEOOO8####xxXXX"
 "        KK                      "
 "        KK                      "
 "        KK          EE          "
 "  PP  GGKKkk        EE    ##    "
 "  PP  GGKKkk    EE  EEOO  ##  XX"
 "BBPPxxGGKKkkEEeeEEeeEEOO  ##xxXX"
 "BBPPxxGGKKkkEEeeEEeeEEOO88##xxXX"

ব্যাখ্যা:

{reverse flip raze (max count each c)$flip 2#enlist c:(where differ x)_x} / ungolfed function
{                                                                       } / lambda function
                                                      (where differ x)    / indices where x differs
                                                                      _   / cut at these points aabbbc -> "aa","bbb","c"
                                                    c:                    / save in variable c
                                             enlist                       / put this list in another list
                                           2#                             / take two from this list (duplicate)
                                      flip                                / rotate columns/rows
                   (max count each c)                                     / find the longest run of characters
                                     $                                    / whitespace pad lists to this length
              raze                                                        / reduce down lists
         flip                                                             / rotate columns/rows
 reverse                                                                  / invert so buildings are on the ground

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.