স্কোয়ার্ড ওয়ার্ড বানানো


38

চ্যালেঞ্জ

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

উদাহরণ

ইনপুট দেওয়া হয়েছে:

golf

আপনার প্রোগ্রাম আউটপুট করা উচিত:

golf
o  l
l  o
flog

ইনপুট:

123

আউটপুট:

123
2 2
321

ইনপুট:

a

আউটপুট:

a

ইনপুট:

Hello, world!

আউটপুট (এবং এবং ডাব্লু এর মধ্যে স্থানটি লক্ষ্য করুন - ফাঁকটি কেবল একটি নতুন লাইন নয়):

Hello, world!
e           d
l           l
l           r
o           o
,           w

w           ,
o           o
r           l
l           l
d           e
!dlrow ,olleH

স্কোরিং

এটি , তাই প্রতিটি ভাষার সংক্ষিপ্ত উত্তর জিততে পারে।


@ ডিজেএমসিএমহেম হ্যাঁ, আমার ক্ষমা চাই আমি এটি যুক্ত করতে ভুলে গিয়েছিলাম।
স্পুকিজেঙ্গার

2
কোনও উদ্বেগ নেই, কেবল ডাবল চেকিং। প্রথম চ্যালেঞ্জ বিটিডাব্লু! সাইটে আপনাকে স্বাগতম :)
ডিজেএমসিএমহেম

@ স্পুকিজেঙ্গার আপনি কি একটি-অক্ষরের ইনপুটটির জন্য একটি পরীক্ষার কেস যুক্ত করবেন?
musicman523

@ musicman523 আমার কাছে ইতিমধ্যে একটি নেই? তৃতীয় উদাহরণটি কেবল 'ক' বর্ণের সাথে জড়িত।
স্পুকিজেঙ্গার

1
আমার খারাপ @SpookyGengar, আমি অন্ধ দৃশ্যত আছি
musicman523

উত্তর:


17

কাঠকয়লা , 7 5 বাইট

θ‖O↙↘

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। সম্পাদনা: @ কার্লোস আলেজো ধন্যবাদ 2 বাইট সংরক্ষণ করা। ব্যাখ্যা:

θ       Print the input string, making the top row
 ‖O     Reflect with overlap...
   ↙    ... down and left, to create the left side
    ↘   ... down and right, to create the bottom and right sides

(প্রতিফলিত কমান্ডের একাধিক দিকনির্দেশ একযোগে না হয়ে একটানা চালিত হয়)


বাহ, যীশু, আমি এখনও মনে করি চারকোলটি সবচেয়ে দুর্দান্ত ধারণা ছিল।
ম্যাজিক অক্টোপাস উরান

1
আপনি দুটি বাইট সংরক্ষণ করতে পারবেন যদি আপনি শুধু ইনপুট স্ট্রিং মুদ্রণ এবং এটা downleftwards এবং downrightwards প্রতিফলিত: θ‖B↙↘এটি অনলাইন চেষ্টা করুন!
চার্লি

এখন যেহেতু আমি এটির কথা ভাবি, সম্ভবত চরিত্রগুলি উল্টানো এড়াতে আমার ReflectOverlapপরিবর্তে ব্যবহার করা উচিত ছিল ReflectButterfly। :-)
চার্লি

1
এটি একটি বিরল ক্ষেত্রে যেখানে একটি সাধারণ ভাষায় গল্ফ করা উত্তরগুলি জনপ্রিয় সাধারণ উদ্দেশ্যে ভাষাগুলির সম্পূর্ণ বর্ণাolf্য সংস্করণগুলির চেয়ে পড়া এবং বুঝতে সহজ।
কালেব

আপনার উত্তরটি এখানে 4 বাইটের জন্যও কাজ করে।
অলিভার

10

এমএটিএল , 20 16 11 বাইট

otYTO6Lt&(c

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

সম্পাদনা: কোড 20.2.1 প্রকাশের ক্ষেত্রে কাজ করে যা চ্যালেঞ্জের পূর্বাভাস দেয়। লিঙ্কটি সেই প্রকাশটি ব্যবহার করে। (২০.২.২ এ কোডটি সংক্ষিপ্ত হবে, তবে এটি চ্যালেঞ্জের পরে পোস্ট করেছে)।

ব্যাখ্যা

o     % Implicitly input a string. Convert chars to ASCII codes
t     % Duplicate
YT    % 2-input Toeplitz matrix
O     % Push 0
6L    % Push predefined literal [2, -1+1j]. When used as an index, this is
      % interpreted as 2:end-1 (indexing is 1-based)
t     % Duplicate
&(    % 4-input assignment indexing. This writes 0 at the square formed by
      % rows 2:end-1 and columns 2:end-1 
c     % Convert to char. Char 0 is shown as space. Implicitly display

খুব চিত্তাকর্ষক! :) প্রতিটি আউটপুটের নীচে ফাঁকা রেখাটি সরিয়ে ফেলা সম্ভব, বা কার্যকারিতার জন্য এটি কি প্রয়োজন?
স্পোকিজেঙ্গার

2
@ স্পুকি জেঙ্গার একটি একক চলমান নতুন লাইনের অনুমতি দেওয়ার জন্য এটি একটি খুব সাধারণ অনুরোধ।
জোনাথন অ্যালান

@ স্পুকি গেঙ্গার ধন্যবাদ! এমএটিএল সর্বদা একটি পেছনের নতুন লাইন প্রদর্শন করে। জোনাথন যেমন বলেছেন, এটি সাধারণত অনুমোদিত হয়
লুইস মেন্ডো

1
@ লুইস মেন্ডো আপনি প্রতিদিন নতুন কিছু শিখেন। :) জমা দেওয়ার জন্য ধন্যবাদ - অবশ্যই এখন পর্যন্ত সেরা!
স্পুকিজেঙ্গার

6

জেলি ,  29 22  17 বাইট

কাঠকয়লা এই স্কোরটিকে ঘৃণা করবে ...

J⁶ẋa0,1¦"ṚṚ;$ṖŒḌY

একটি মোনাডিক লিঙ্ক অক্ষরগুলির তালিকা গ্রহণ এবং ফিরিয়ে দেয়; বা ফলাফল মুদ্রণ একটি সম্পূর্ণ প্রোগ্রাম।

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

কিভাবে?

J⁶ẋa0,1¦"ṚṚ;$ṖŒḌY - Link: list of characters, w     e.g. "whole"
 ⁶                - literal space character              ' '
J                 - range(length(w))                     [1,2,3,4,5]
  ẋ               - repeat                               [" ","  ","   ","    ","     "]
         Ṛ        - reverse w                            "elohw"
        "         - zip with:
       ¦          -   sparse application of:
   a              -     and (vectorises)
    0,1           -     to indexes: [0,1] (last and 1st) ["e","ll","o o","h  h","w   w"]
            $     - last two links as a monad:
          Ṛ       -   reverse                            ["w   w","h  h","o o","ll","e"]
           ;      -   concatenate                        ["w   w","h  h","o o","ll","e","e","ll","o o","h  h","w   w"]
             Ṗ    - pop (remove last entry)              ["w   w","h  h","o o","ll","e","e","ll","o o","h  h"]
              ŒḌ  - reconstruct matrix from diagonals    ["whole","h   l","o   o","l   h","elohw"]
                Y - join with newlines                   "whole\nh   l\no   o\nl   h\nelohw"
                  - if running as a full program implicit print

খুব ঠান্ডা! এখনও অবধি সংক্ষিপ্ত সমাধান, তবে একক-অক্ষর ইনপুট, এবং সংখ্যার সমন্বিত স্ট্রিংগুলি যেমন '123' দিয়ে কাজ করে না।
স্পোকিজেঙ্গার

আহ আমি একক অক্ষর প্রান্ত কেস পরিচালনা করতে হবে, হ্যাঁ। এটি ডিজিটাল-চরিত্রের স্ট্রিংগুলির সাথে কাজ করে, প্রোগ্রামের ইনপুটটি সত্যই উদ্ধৃত করা উচিত, যেমন 'Hello'"স্পোকি" "123", ইত্যাদি (পাইথন ইনপুট ব্যাখ্যা করার জন্য ব্যবহৃত হয়)।
জোনাথন অ্যালান

@ স্পুকিজেঙ্গার - এটি 1-চরিত্রের ক্ষেত্রে স্থির করুন।
জোনাথন অ্যালান

চমৎকার দৈর্ঘ্য হ্রাস!
লুইস মেন্ডো

2
আপনি চারকোল সম্পর্কে ঠিক বলেছেন।
নীল

3

সি, 109 বাইট

i,j;f(char*s){for(i=j=printf("%s\n",s)-2;1[++s];)printf("%c%*c\n",*s,i,s[j-=2]);for(;*s*~i--;)putchar(*s--);}

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

লক্ষণীয় কৌশল:

  • বাইটগুলি নষ্ট করার পরিবর্তে strlenএকই সাথে প্রথম লাইনটি প্রিন্ট করার সময় আমরা স্ট্রিংয়ের দৈর্ঘ্যটি সহজভাবে দখল করি:

    i=j=printf("%s\n",s)-2

    এটি কাজ করে কারণ printfলিখিত বাইট সংখ্যা প্রদান করে।

  • মাঝের রেখাগুলির জন্য, আমাদের স্ট্রিংটির উপরে লুপ করতে হবে তবে প্রথম এবং শেষের অক্ষর উভয়ই বাদ দিতে হবে। এটি শর্ত দিয়ে অর্জন করা হয়

    1[++s]

    (যা তুলনায় খাটো (++s)[1]যা কারণে প্রথম অক্ষর অগ্রাহ্য), ++'অবস্থায় গুলি হচ্ছে এবং বাঁধন যখন বর্তমান চরিত্র গত চরিত্র দ্বারা গত এক অগ্রাহ্য '\0'(বদলে বাঁধন '\0' )।

  • প্রথম লুপের শরীরে,

    printf("%c%*c\n",*s,i,s[j-=2])

    আমরা বর্তমান চরিত্রটি মুদ্রণ করি, তারপরে যথাযথ "মিররড" অক্ষর (যার সাথে ট্র্যাক রাখা j, যা নেতিবাচক ক্ষেত্রে চলে যায়, ফলস্বরূপ একটি দৈর্ঘ্যে প্যাড করে) যেখানে একটি নেতিবাচক সংখ্যার সাথে একটি স্ট্রিংয়ের সাথে সূচকের অদ্ভুত পরিস্থিতি তৈরি হয় i(কোথায় iথাকে সুবিধাজনকভাবে strlen(s) - 1)।

  • শেষ লাইনে বিপরীত মুদ্রণটি বেশ সোজা; একমাত্র কৌশলটি হ'ল *s*~i--, যা i+2লুপের বডিটির পুনরাবৃত্তিগুলি অর্জনের সবচেয়ে সংক্ষিপ্ততম উপায় (যা নির্ভর করে না i; iসমস্তটি গণনা করা হয়)। ভীতু *s*অংশ নিশ্চিত লুপ চলে না করলে *sহয় '\0', যা দৈর্ঘ্য-1 ইনপুটের ঘটবে।


3

অক্টাভা, 40 বাইট

@(s,t=toeplitz(s),u=t(x=2:end-1,x)=32)t;

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

এটি আমার উত্তর তবে @ লুইস এমএটিএল উত্তর পরে পোস্ট করা হয়েছে


2
খুব সুন্দর উত্তর। বিটিডাব্লু: আপনার কোডটি জিএনইউ অক্টাভ ডেভলপমেন্ট শাখা ৪.৩.১ (বি 481a9baeb61) ক্র্যাশ করেছে এবং এখন পরীক্ষার স্যুটটির অংশ :-) hg.savannah.gnu.org/hgweb/octave/rev/c94e9509461b
অ্যান্ডি

1
@ অ্যান্ডি ধন্যবাদ এবং কোডগল্ফ স্বাগতম! আমি যদি খুশি হ'ল এটি যদি অক্টাভা প্রকল্পের উন্নতি করতে সহায়তা করতে পারে!
rahnema1

3

হাস্কেল , 84 78 বাইট

f s@(_:x)|_:y<-r x=s:[a:(y>>" ")++[b]|(a,b)<-zip x y]++[r s];f s=[s]
r=reverse

এটি অনলাইন চেষ্টা করুন! ব্যবহার: f "test"। লাইনের একটি তালিকা ফেরত দেয়।

সম্পাদনা করুন: -6 বাইট ধন্যবাদ dianne!


1
আপনি রক্ষক হিসাবে প্যাটার্ন গার্ডটি ব্যবহার করে এবং এর প্রতিশব্দ সংজ্ঞা দিয়ে কয়েকটি বাইট সংরক্ষণ করতে পারেন reverse; r=reverse;f s@(_:x)|_:y<-r x=s:[a:(y>>" ")++[b]|(a,b)<-zip x y]++[r s];f s=[s]78 বাইট হয়।
dianne

2

পাইথন 2 , 89 81 88 86 বাইট

i=input();n=k=len(i)-2
print i
exec'print i[~k]+" "*n+i[k];k-=1;'*n
if~k:print i[::-1]

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


আমার যে দৈর্ঘ্য 1 স্ট্রিংয়ের একই ব্যর্থতা।
স্টিফেন

@ স্টেপহেন এটি ঠিক করেছেন এবং আরও গল্ফ করেছেন: ডি
কাইশোর রায়


2

05 এ বি 1 , 17 16 15 19 বাইট

ÂDÂø¦¨Dgú€Ás)˜»Igi¨

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

ব্যাখ্যা

সঙ্গে উদাহরণ input = golf

ÂDÂ                  # bifurcate, duplicate, bifurcate
                     # STACK: 'golf', 'flog', 'flog', 'golf'
   ø                 # zip the top 2 items
                     # STACK: 'golf', 'flog', ['fg', 'lo', 'ol', 'gf']
    ¦¨               # remove the first and last element
                     # STACK: 'golf', 'flog', ['lo', 'ol']
      Dg             # get the length of the list
                     # STACK: 'golf', 'flog', ['lo', 'ol'], 2
        ú            # prepend that many spaces to each element
                     # STACK: 'golf', 'flog', ['  lo', '  ol']
         €Á          # rotate each right
                     # STACK: 'golf', 'flog', ['o  l', 'l  o']
           s         # swap the top 2 items
                     # STACK: 'golf', ['o  l', 'l  o'], 'flog'
            )˜       # wrap in a flattened list
                     # STACK: ['golf', 'o  l', 'l  o', 'flog']
              »      # join on newline
               Igi¨  # if input is length 1, remove last char

1-বর্ণের ইনপুটটির জন্য ফিক্সটি বেশ ব্যয়বহুল ছিল।
আমার মনে হচ্ছে এখন অন্যরকম পদ্ধতির চেয়ে ভাল হতে পারে।


1

পাইথন 2 , 99 88 বাইট

-4 বাইট সংগীতকারকে ধন্যবাদ 23

lambda s:s[1:]and[s]+[s[i]+' '*(len(s)-2)+s[~i]for i in range(1,len(s)-1)]+[s[::-1]]or s

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

স্ট্রিংগুলির একটি তালিকা ফেরত দেয়।


বন্ধ! আউটপুট ঠিক আমি যা চাইছি তা নয়।
স্পুকিজেঙ্গার

1
89 বাইট সরানো sএবং s[::-1]into join
োকানো

দৈর্ঘ্য -1 স্ট্রিংয়ের জন্য এটি বেশ
কার্যকরভাবে

2
শুধু লক্ষণীয়, সমস্ত বিষয় স্থির করা হয়েছে।
সম্পূর্ণরূপে

1

গণিত, 128 বাইট

(c=Column;g=Length[x=Characters@#]-1;If[g==0,#,c@{#,c@Table[""<>{x[[i]],""<>Table[" ",g-1],x[[-i]]},{i,2,g}],StringReverse@#}])&

1

সি, 96 বাইট

i,l;f(char*s){for(i=l=puts(s)-2;--i;)printf("%c%*c\n",s[l-i],l,s[i]);for(;l+1;)putchar(s[l--]);}

বোনাস সংস্করণ (122 বাইট):

x,y,i,l;f(char*s){for(i=l=puts(s)-1;++i<l*-~l;putchar(x==l?10:x%~-l*(y%~-l)?32:s[(x*y?l+l-2-x-y:x+y)%l]))x=i%-~l,y=i/-~l;}


1

পাইথন 3, 88 বাইট

w=input();p=print;l=len(w)-2
[p(w[n+1]+' '*l+w[l-n])for n in range(l)]
l+1and p(w[::-1])

1
পিপিসিজিতে আপনাকে স্বাগতম!
মার্টিন ইন্ডার

পাশাপাশি সাইটে স্বাগতম! আমি বিশ্বাস করি যে l+1 andএটি l+1andএকটি বাইট সংরক্ষণ করার জন্য পুনরায় লেখা যেতে পারে ।
গম উইজার্ড

@ উইট উইজার্ড সম্পাদিত - ধন্যবাদ! আমি অবাক হয়েছিল যে কাজ করেছে ...
লেভি

এটি অ্যাক্টাল উপসর্গ 0orহওয়ায় অজগরটি পার্স করতে ব্যর্থ হয়েছে এমন ক্ষেত্রে ব্যতীত এটি কাজ করবে 0o
গম উইজার্ড

যখন আমি এই রান এটির উপরে লাইন ... মুদ্রণ বলে মনে হচ্ছে না tio.run/##FcoxCsQgEAXQPqeYLk7EwqRL8CRiEVh3Iww/...
COTY Johnathan Saxman

1

জাভাস্ক্রিপ্ট (ES8), 108 112 বাইট

let f = 

s=>(n=s.length)<2?s:(r=[...s].reverse()).slice(1,-1).reduce((a,v,i)=>a+`
`+s[i+1].padEnd(n-1)+v,s)+`
`+r.join``

o.innerHTML = f("hello folks!")
<pre id="o"></pre>

কম গোলফিড

s=>
   (n=s.length) < 2 ?    // record and check length
   s :                   // s has 0 or 1 char, else
   (r=[...s].reverse())  // reverse characters,
   .slice(1,-1)          // exclude 1st and last
   .reduce((a,v,i)=>     // append inner lines
      a +'\n' +s[i+1].padEnd(n-1) + v
    ,s)                  // to first line
    + '\n' +r.join("")   // append characters reversed

প্রচুর বাইট সংরক্ষণ করার জন্য জাস্টিন মেরিনারকে ধন্যবাদ, যা চ্যালেঞ্জটি মেনে চলার জন্য প্রয়োজনীয় শূন্য বা একক অক্ষর চেক যোগ করার পরে সমস্তটি ব্যবহার হয়ে যায়। আপনি এটি পান :-(


আপনি দ্বিতীয় লাইন তৈরি করে `+s[i+1].padEnd(s.length-1)+v,s)+`এবং ব্যবহার করে 7 বাইট সংরক্ষণ করতে পারেন r.join``
জাস্টিন মেরিনার

String.prototype.padStartটেম্পলেট আক্ষরিক সম্পর্কে টিপস এবং ট্যাগ করার জন্য @ জাস্টিনমারিনার ধন্যবাদ দৈর্ঘ্যের চেকটি সর্বনিম্ন :-) এ সংযোজন করতে আমার সহায়তা করা দরকার
traktor53

আপনার ব্যবধানটি এখন একটি চরিত্রের খুব ছোট; আপনি এটি সংশোধন করতে এবং কাজ করে (n=s.length-1)?(r=<...>+r.join``:sএবং ব্যবহার করে আরও কয়েকজনকে সঞ্চয় করতে পারেন padEnd(n)। দৈর্ঘ্য হল যদি 1, length-1হয় 0(মিথ্যা)।
জাস্টিন মেরিনার 4

@ জাস্টিনমারিনারের ব্যবধান স্থির হয়ে গেছে, তবে আমি দৈর্ঘ্য পরীক্ষাটি রেখেছি - যেমনটি আমি বুঝতে পেরেছি, একটি অক্ষরের শূন্য দৈর্ঘ্যের স্ট্রিং এবং স্ট্রিং উভয়ই ক্যারিজের রিটার্ন বা স্ট্রিংটির পুনরাবৃত্তি ছাড়াই ফিরে আসে।
traktor53

1
padEndES2017।
নিল


1

এপিএল , 58 বাইট

{(' ',⍵)[x+(x←∘.{((c-1)=⍺⌈⍵)∨0=⍺⌊⍵}⍨r)×o⌊⌽⊖o←∘.⌈⍨r←⍳c←≢⍵]}

সঙ্গে ⎕IO←0

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

কিভাবে?

c←≢⍵ - স্ট্রিং দৈর্ঘ্য

r←⍳ - পরিসীমা

o←∘.⌈⍨ - সর্বনিম্ন সহ বাইরের পণ্য

123
223
333

o⌊⌽⊖- নিজেই 180 ও। এর সাথে ছোট করুন

123  ⌊  333  =  123
223  ⌊  322  =  222
333  ⌊  321  =  321

× - সাথে গুন

x←∘....⍨r - এর সাথে পরিসীমাটির বাহ্যিক পণ্য

    ((c-1)=⍺⌈⍵)∨0=⍺⌊⍵ - ম্যাট্রিক্সের ফ্রেম

111  ×  123  =  123
101  ×  222  =  202
111  ×  321  =  321

x+ - ফ্রেম যোগ করুন

111  +  123  =  234
101  +  202  =  303
111  +  321  =  432

(' ',⍵)[...] - স্ট্রিং থেকে স্পেসে সংক্ষিপ্ত হয়ে সূচী দ্বারা পান


হতে ⍉⊖⍉⊖পারে ⌽⊖?
Zacharý

@ জাচারý ধন্যবাদ
উরিল

0

জাভাস্ক্রিপ্ট (ES2017), 87 বাইট

s=>[...s].reverse(l=s.length-1).map((c,i,z)=>i?l-i?s[i].padEnd(l)+c:z.join``:s).join`
`

ES6 সংস্করণ: 93 বাইট

s=>[...s].reverse(l=s.length-1).map((c,i,z)=>i?l-i?s[i]+' '.repeat(l-1)+c:z.join``:s).join`
`

কম গল্ফড

s => (
  l = s.length-1,
  [...s].reverse().map( // scan string backwards
     (c, i, z) => 
     i != 0 // check if top row
     ? l-i != 0 // check if bottom row
       ? s[i].padEnd(l) + c // any middle row
       : z.join`` // bottom row: string reversed
     :s // top row: original string
  ).join`\n`
)

F=
s=>[...s].reverse(l=s.length-1).map((c,i,z)=>i?l-i?s[i].padEnd(l)+c:z.join``:s).join`
`

function update() {
  O.textContent = F(I.value)
}

update()
<input id=I value='Hello, world!' oninput='update()'>
<pre id=O></pre>


padEndES2017।
নিল

@Neil তোমাকে ধন্যবাদ আমার শিরোনাম পরিবর্তন করব
edc65

আপনি ব্যবহার করে আপনার ES6 সংস্করণে একটি বাইট সংরক্ষণ করতে পারেন l+~i, এটি একবার 2 একবার বিয়োগ করতে পারবেন পরিবর্তে একবার 2 বিয়োগ করা এড়ানো হবে।
নিল

@ নীল এটি হওয়া উচিতl-~-i
এডসি 65

আমি ভাবছিলাম s=>[...s].reverse(l=s.length).map((c,i,z)=>i?l+~i?s[i]+' '.repeat(l-2)+c:z.join``:s).join`\n` কিন্তু s=>[...s].reverse(l=s.length-2).map((c,i,z)=>i?i+~l?s[i]+' '.repeat(l)+c:z.join``:s).join`\n` কাজ করে।
নিল

0

জাভা, 191 বাইট

(s)->{PrintStream o=System.out;int l=s.lenght();o.println(s);for(int i=0;i<l;i++){o.printf("%"+"s%"+(l-1)+"s%n",s.charAt(i),s.charAt(l-1-i));for(int i=0;i<l;i++){o.print(s.charAt(l-1-i));}}};

(s)ঠিক হতে পারে s। ভিতরে একক লাইনযুক্ত লুপগুলি তাদের কোঁকড়ানো ধনুর্বন্ধনী মুছে ফেলতে পারে। আপনি মুদ্রণের পরিবর্তে ফিরে আসতে পারেন যদি এটি আপনাকে কোনও বাইট সংরক্ষণ করে। আপনি int iউভয় লুপগুলিতে ব্যবহার করেন, আমি বলতে পারি না যে তারা বিভিন্ন স্কোপে আছে তবে উল্লেখযোগ্য worth এক সাথে ভেরিয়েবলের মতো আরম্ভ করা সাধারণত বাইট সংরক্ষণ করে। for(int i=0;i<l;i++){o.print(s.charAt(l-1-i));}-> for(int i=0;i<l;){o.print(s.charAt(l-1-i++));}। আপনার পেছনের আধা কোলোন লাগবে না।
TheLethalCoder

চিহ্নিত করার জন্য ধন্যবাদ;) (গল্ফিংয়ের সাথে খুব একটা পরিচিত নয়)। পরে এটি অপ্টিমাইজ করবে!
সার্ভারফ্রোগ

0

সি # (.নেট কোর) , 179 161 বাইট

-18 বাইটস TheLethalCoder ধন্যবাদ

using System.Linq;
s=>{int l=s.Length-1,i=1;var d=s.Reverse().ToArray();while(i<l)s+="\n"+s[i]+new string(' ',l-1)+d[i++];if(l>1)s+="\n"+new string(d);return s;};

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

আমি বিধিগুলি সম্পর্কে নিশ্চিত নই, যদি এটির গণনা বাইট করার প্রয়োজন হয় বা না:

using System.Linq;

কেউ দয়া করে এ সম্পর্কে আমাকে সংশোধন করুন।

Ungolfed:

s =>
{
    int l = s.Length - 1, i = 1;
    var d = s.Reverse().ToArray();
    while (i < l)
        s += "\n" + s[i] + new string(' ', l - 1) + d[i++];
    if (l > 1)
        s += "\n" + new string(d);
    return s;
};

হ্যালো এবং পিপিসিজিতে আপনাকে স্বাগতম! আপনি লিনক ব্যবহার করছেন যাতে usingআপনার বাইট গণনায় অন্তর্ভুক্ত করা উচিত । আপনি যেমন লিনক ব্যবহার করছেন ন্যায়বিচারী ToCharArray()হতে পারে ToArray(), তবে কি সত্যই আগে এটির প্রয়োজন Reverse()? আপনি যেহেতু ব্যবহার করছেন Stringআপনাকে একে পুরোপুরি যোগ্যতা অর্জন করতে হবে বা ব্যবহারকে অন্তর্ভুক্ত করতে হবে, তবে এটি খুব সহজেই পরিবর্তন করে এটি ঠিক করা যেতে পারে string। এর চেয়ে ifতিন ভাগের মতো ছোট হতে পারে s+=l>1?if code:"";। আপনি i++লুপ থেকে মুছে ফেলতে এবং এটিতে বর্ধিত পোস্ট করতে পারেন d[i++]
21:40 '

লাইক iদিয়ে শুরু করুন । এবং আমি মনে করি এটি হতে পারে! lint l=s.Length-1,i=1;
লেটলকোডার

@TheLethalCoder আপনাকে ধন্যবাদ! আমি কোডগুলিতে আপনার পরামর্শ যুক্ত করেছি। কয়েকটি নোট: আমি সম্পূর্ণরূপে ভুলে গেছি যে স্ট্রিংয়ের আসলে আইনুমেবল রয়েছে; স্ট্রিংয়ের পরিবর্তে স্ট্রিং ছিল একটি জাভা অবশিষ্টাংশ যা আমি এখনও লড়াই করছি, টের্নারি আসলে অবাকভাবে অবাক ছিল; এবং আপনার পরিবর্তনের পরে আমি (; এক্সপ্রেস;) এর পরিবর্তিত হয়েছিলাম (এক্সপ্রেস) থেকে যেহেতু এটি দেখতে সুন্দর লাগছে এবং এটি একই বাইট গণনা। আবার আপনাকে ধন্যবাদ.
গ্রেজগোর্জ পুয়াওস্কি

কোন চিন্তা করো না! টেরিনারিগুলি কখনও কখনও হয় তবে সাধারণত খাটো হয়ে যায় তাই সর্বদা তাদের চেষ্টা করার জন্য মূল্যবান।
TheLethalCoder

0

রেটিনা , 106 বাইট

..+
$&¶$&
O$^`.(?=.*$)

\G.
$&$%'¶
r`.\G
¶$%`$&
+`(.+)¶¶((.*¶)*).(.*)
¶¶$1$4$2
T`p` `(?<=.¶.).*(?=.¶.)
G`.

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

..+
$&¶$&

যদি কমপক্ষে দুটি অক্ষর থাকে তবে ইনপুটটি সদৃশ করুন।

O$^`.(?=.*$)

সদৃশ বিপরীত।

\G.
$&$%'¶
r`.\G
¶$%`$&

স্ট্রিংগুলি ত্রিভুজগুলিতে পরিণত করুন। শীর্ষ ত্রিভুজটি ইনপুট দিয়ে শুরু হয় এবং প্রতিবার প্রথম অক্ষরটি সরিয়ে দেয়, যখন নীচের ত্রিভুজটি বিপরীত ইনপুটটির প্রথম অক্ষর দিয়ে শুরু হয় এবং প্রতিবার একটি অক্ষর যুক্ত করে।

+`(.+)¶¶((.*¶)*).(.*)
¶¶$1$4$2

ত্রিভুজ একসাথে যোগদান করুন, ওভারল্যাপিং যাতে শেষ চরিত্রটি /তির্যক গঠন করে ।

T`p` `(?<=.¶.).*(?=.¶.)

সমস্ত অক্ষর স্পেসে পরিবর্তন করুন, যদি তারা প্রতিটি দিক থেকে অন্তত একটি অক্ষর দূরে থাকে।

G`.

কোনও বাম-ওভার ফাঁকা লাইন মুছুন।


0

পাইথন 3, 85 বাইট

উপরের সারির ইনপুটটি ব্যবহার করা :)

a=input()
b=len(a)
for i in range(b-2):print(a[1+i]+" "*(b-2)+a[-2-i])
print(a[::-1])

আপনি কি নিশ্চিত যে এটি একটি সঠিক উত্তর দেয়?
কোনিশোর রায়


0

পাইথন 3, 106 বাইট

একটি কার্যকরী সংস্করণ ...

w=input();p=print;l=len(w)-2
def f(k):p(w[k]+' '*l+w[-k-1]);l-k>0and f(k+1)
l<0 or f(1)or l<1or p(w[::-1])


0

গণিত, 138 91 বাইট

(b=Outer[" "&,#,#];Do[l={{1,k},{k,1}};b=ReplacePart[b,Join[l,-l]->#[[k]]],{k,Length@#}];b)&

আপনি ওল্ফ্রাম ক্লাউড স্যান্ডবক্সে নিম্নলিখিতটি আটকানো এবং "মূল্যায়ন ঘর" ক্লিক করে বা শিফট + এন্টার বা নম্প্যাড এন্টার টিপুন দিয়ে অনলাইনে চেষ্টা করে দেখতে পারেন :

(b=Outer[" "&,#,#];Do[l={{1,k},{k,1}};b=ReplacePart[b,Join[l,-l]->#[[k]]],{k,Length@#}];b)&@{"g","o","l","f","y"}//MatrixForm
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.