এএসসিআইআই ডঙ্ক স্টার


10

ইনপুট বিবরণ

একটি স্ট্রিং (সেরা ফলাফলের জন্য, সমস্ত অক্ষর মুদ্রণযোগ্য এবং একই প্রস্থের হওয়া উচিত)।

আউটপুট বিবরণ

প্যাটার্ন অনুসরণ করে একটি চরিত্র তারকা:

0  0  0
 1 1 1 
  222  
0123210
  222  
 1 1 1 
0  0  0

যেখানে 0, 1... স্ট্রিং এর পরবর্তী অক্ষর। আউটপুটটি অগত্যা এক স্ট্রিং হওয়া উচিত নয় - কনসোলে স্টার চরকে চর দ্বারা প্রিন্ট করা ভাল।

উদাহরণ

>> star('overflow')
>>
o      o      o
 v     v     v 
  e    e    e  
   r   r   r   
    f  f  f    
     l l l     
      ooo      
overflowolfrevo
      ooo      
     l l l     
    f  f  f    
   r   r   r   
  e    e    e  
 v     v     v 
o      o      o

আমি মনে করি "স্ট্রিং "টি আরও কিছুটা পরিষ্কার হওয়া উচিত, আপনি কি কেবল একটি মুদ্রণযোগ্য ASCII সমন্বিত একটি স্ট্রিং বলতে চাইছেন?
FryAmTheEggman

আমি মনে করি "স্ট্রিং" যথেষ্ট। অবশ্যই, সেরা ফলাফলের জন্য আপনি সম্ভবত ট্যাব বা অন্যান্য অক্ষরগুলি এড়িয়ে যেতে চান যা আউটপুটটির আকারকে বিকৃত করে, তবে এর অর্থ এই নয় যে আপনি সেগুলি অন্তর্ভুক্ত করতে পারবেন না। তবুও, আমি স্পষ্টতার জন্য বিবরণটি আপডেট করেছি।
shooqie

3
এটি সর্বোত্তম ফলাফল দেয় কিনা সে সম্পর্কে কম উত্তর তবে উত্তরগুলির পক্ষে এটি সমর্থন করতে হবে কিনা। কিছু ভাষাতে কিছুটা আলাদা কোড ব্যবহার করতে হতে পারে যেমন- অ-এএসসিআইআই (ইউনিকোড) অক্ষরগুলিকেও সমর্থন করতে হয়। তেমনি, কিছু কোড সংক্ষিপ্ত হতে পারে যদি আমরা ধরে নিতে পারি যে অ-প্রিন্টেবলগুলি উপস্থিত হবে না (বিশেষত লাইনফিড)।
মার্টিন ইন্ডার

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

উত্তর:



1

পার্ল, 97 93 + 2 = 95 বাইট

$i=y///c-2;push@a,map{$"x$j++.$_.($"x$i--.$_)x2}/.(?!$)/g;say for@a,s/.$//r.reverse,reverse@a

-nlEপতাকা প্রয়োজন :

$ perl -nlE'$i=y///c-2;push@a,map{$"x$j++.$_.($"x$i--.$_)x2}/.(?!$)/g;say for@a,s/.$//r.reverse,reverse@a' <<< 'overflow'
o      o      o
 v     v     v
  e    e    e
   r   r   r
    f  f  f
     l l l
      ooo
overflowolfrevo
      ooo
     l l l
    f  f  f
   r   r   r
  e    e    e
 v     v     v
o      o      o

Ungolfed:

$i=y///c-2;
push @a, map{
  $" x $j++ . 
  $_ . 
  ($" x $i-- . $_)x2
} /.(?!$)/g;
say for @a, s/.$//r.reverse, reverse@a

1

গুরুতরভাবে, 57 বাইট

╩╜#dXΣR;╝;lr;R3Z`i' *;(;;))@(((@)' *;)kΣ`M;R@k`'
j`Mi╛╜+@

হ্যাঁ, সেই নিউলাইনটি সেখানে থাকার কথা। হ্যাঁ, সিরিয়াসলি এখনও স্ট্রিং ম্যানিপুলেশন সাফল্য। হেক্সডাম্প (এর সাথে বিপরীতমুখী xxd -r):

00000000: cabd 2364 58e4 523b bc3b 6c72 3b52 335a  ..#dX.R;.;lr;R3Z
00000010: 6069 2720 2a3b 283b 3b29 2940 2828 2840  `i' *;(;;))@(((@
00000020: 2927 202a 3b29 6be4 604d 3b52 406b 6027  )' *;)k.`M;R@k`'
00000030: 0a6a 604d 69be bd2b 40                   .j`Mi..+@

আমি এটি লেখাটি শেষ করার পরে ব্যাখ্যা সহ এটি আপডেট করব। এটা বেশ দীর্ঘ।


1

ES6, 153 বাইট

s=>[...a=(t=[...s.slice(0,-1)]).map((c,i)=>(a=Array(t.length).fill` `,a[i]=c,a.join``+c+a.reverse().join``)),s+t.reverse().join``,...a.reverse()].join`\n`

Ungolfed:

function star(s) {
    r = [];
    h = s.length - 1;
    for (i = 0; i < h; i++) {
        a = [...' '.repeat(h)];
        a[i] = s[i];
        a = a.concat(s[i]).concat(a.reverse());
        r.push(a.join(''));
    }
    return r.concat(s + [...s.slice(0,h)].reverse().join('')).concat(r.reverse()).join("\n");
}

বিকল্প সমাধান, এছাড়াও 153 বাইট:

s=>[...a=(t=[...s].reverse().slice(1)).map((c,i)=>(a=Array(l+l+1).fill` `,a[i]=a[l]=a[l+l-i]=c,a.join``),l=t.length),s+t.join``,...a.reverse()].join`\n`

Ungolfed:

function star(s) {
    r = [];
    h = s.length - 1;
    for (i = 0; i < h; i++) {
        a = [...' '.repeat(h + h + 1)];
        a[i] = s[i];
        a[h] = s[i];
        a[h + h - i] = s[i];
        r.push(a.join(''));
    }
    return r.concat(s + [...s].reverse().slice(1).join('')).concat(r.reverse()).join("\n");
}

দ্রষ্টব্য: \nভিতরে `গুলি একটি আক্ষরিক নিউলাইন চরিত্র।

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