StringgnirtSStringgnirtSStringgnirtS


42

এখানে আপনার জন্য একটি অপেক্ষাকৃত সহজ চ্যালেঞ্জ।

দৈর্ঘ্য N এর একটি স্ট্রিং দেওয়া হয়েছে , স্ট্রিংকে এগিয়ে, তারপরে পিছনে, তারপরে এগিয়ে, তারপরে পিছনে ... ইত্যাদি এন বার output উদাহরণস্বরূপ, যদি আপনার ইনপুট ছিল

Hello!

আপনার আউটপুট করা উচিত:

Hello!!olleHHello!!olleHHello!!olleH

আপনি allyচ্ছিকভাবে একটি ট্রেলিং নতুন লাইনের আউটপুটও দিতে পারেন।

আপনার জমাটি হয় একটি সম্পূর্ণ প্রোগ্রাম বা কোনও ফাংশন হতে পারে এবং আপনি কোনও যুক্তিসঙ্গত বিন্যাসে ইনপুট এবং আউটপুট নিতে পারেন । উদাহরণস্বরূপ, আপনি STDIN / STDOUT, ফাংশন আর্গুমেন্ট এবং কোনও ফাইল থেকে রিটার্ন মান, ইত্যাদির কাছ থেকে নিতে পারেন safely আপনার অবশ্যই একটি স্ট্রিংয়ে নতুন স্ট্রিং আউটপুট করতে হবে । সুতরাং, উদাহরণস্বরূপ, যদি শেষ উদাহরণে আউটপুট ছিল

Hello!
!olleH
Hello!
!olleH
Hello!
!olleH

এটি বৈধ সমাধান হবে না !

এখানে আরও কয়েকটি পরীক্ষার মামলা রয়েছে:

Input:
a
Output:
a

Input:
abcd
Output:
abcddcbaabcddcba

Input:
OK!
Output:
OK!!KOOK!

Input:
4815162342
Output:
4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184

Input:
PPCG
Output:
PPCGGCPPPPCGGCPP

Input:
42
Output:
4224

লিডারবোর্ড

যেহেতু এটি একটি চ্যালেঞ্জ, স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ করা হয়েছে এবং বাইটের মধ্যে সংক্ষিপ্ত উত্তরটি জিতেছে! তবে , কোনও নির্দিষ্ট ল্যাঙ্গুয়েজের সংক্ষিপ্ত উত্তর পাওয়ার জন্য এটিও একটি প্রতিযোগিতা। যদিও এটি সম্ভবত অসম্ভব যে জাভা উত্তর পার্ল বা কোনও গল্ফের ভাষায় একটি উত্তরকে পরাজিত করবে, তবে জাভা উত্তরটি সংক্ষিপ্তভাবে পাওয়া এখনও খুব চিত্তাকর্ষক। সুতরাং, আপনি উভয়ই দেখতে এই লিডারবোর্ডটি ব্যবহার করতে পারেন

  1. সমস্ত ভাষার মধ্যে সংক্ষিপ্ত উত্তর এবং and

  2. প্রতিটি পৃথক ভাষার সংক্ষিপ্ত উত্তর answer

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

আপনার উদাহরণে, যে করা উচিত হবে না olleH, না elloH?
আরনৌড

2
@ ডাউনগোট নং, আপনাকে অবশ্যই ফর্ম বর্ণিত একই ফর্ম্যাটে ইনপুট এবং আউটপুট নিতে হবে।
ডিজেএমসিএমহেম

4
শিরোনামটি স্ট্রিংগার্নটিএসএস স্ট্রিংগার্নটিএসএস স্ট্রিংগার্টস হওয়া উচিত নয় ?
লুইস মেন্ডো

2
@ কারাসোকম্পুটিং এটি করবে না: "আপনি নিরাপদে ধরে নিতে পারেন যে ইনপুট স্ট্রিংটি খালি হবে না এবং এতে কেবল প্রিন্টযোগ্য এএসসিআইআই থাকবে" "
মার্টিন এেন্ডার

1
en.wikedia.org/wiki/ASCII# মুদ্রনযোগ্য_চক্র্যাক্টর আহ, জানেন না যে এটি ASCII এর একটি সংজ্ঞায়িত উপসেট ছিল। আমি print টি, \ n, ইত্যাদি অন্তর্ভুক্ত করার জন্য মুদ্রণযোগ্য কল্পনা করেছি ...
ম্যাজিক অক্টোপাস উরন

উত্তর:


22

ভিম, 39 , 34 কীস্ট্রোক

:se ri
Y:s/./<C-r>"/g
<C-o>qqgJC<C-r>"<esc>gJ@qq@q

5 লাইট @ লিনকে ধন্যবাদ রক্ষা করেছে!

এটি সরাসরি ঘটছে এর একটি জিআইএফ এখানে রয়েছে: (নোট করুন যে এই জিআইএফটি পূর্ববর্তী সংস্করণে রয়েছে যেহেতু এখনও আমার এটি পুনরায় রেকর্ড করার সময় হয়নি)।

এখানে চিত্র বর্ণনা লিখুন

এবং এখানে এটি কীভাবে কাজ করে তার একটি ব্যাখ্যা:

:se ri                  "Turn 'reverse indent' on.
Y                       "Yank this line
:s/./<C-r>"/g           "Replace every character on this line with the register
                        "We just yanked followed by a newline
<C-o>                   "Jump to our previous location
     qq                 "Start recording in register 'q'
       gJ               "Join these two lines
         C              "Delete this line, and enter insert mode
          <C-r>"<esc>   "Paste the line we just deleted backwards 
gJ                      "Join these two lines
  @q                    "Call macro 'q'. This will run until we hit the bottom of the buffer.
    q                   "Stop recording.
     @q                 "Start our recursive macro

পার্শ্ব নোটে, Yএকটি অতিরিক্ত নতুন লাইন ধরেন, যা সাধারণত একটি অসৎ বৈশিষ্ট্য। এটি সম্ভবত প্রথমবারের মতো এটি বেশ কয়েকটি বাইট সংরক্ষণ করেছে!


2
পরিবর্তে :%s/\n<cr>, আপনি v{gJতিনটি বাইট সংরক্ষণ করতে পারেন ।
লিন

2
একটি ভিআইএম উত্তর ?! এটি আপনার পক্ষ থেকে একটি উত্কৃষ্ট পদক্ষেপ।
যাদু অক্টোপাস উর্ন

@ লিন টিপটির জন্য ধন্যবাদ! আমি কিছুটা আলাদা করে শেষ করেছি এবং পরিবর্তে 5 টি বন্ধ করে দিয়েছি।
ডিজেএমসিএমহেম

এটি ধরে নেওয়া যায় যে @qশুরুতে খালি আছে, তাই না? বা @qরেকর্ডিং বন্ধ করার আগে স্বেচ্ছাসেবী কিছু করতে হবে। (এটি আমার প্রিয় ভিএম ট্রিভিয়ামের দিকে নিয়ে আসে যা আমি এনেছি: প্রত্যেকেই জানে যে ভিম ছাড়াই তত সহজ :q<CR>, তবে কীভাবে আপনি আপনার সমস্ত ফাইল বন্ধ এবং সংরক্ষণ করবেন? সহজ: ঠিক qqqqqZZ@qq@q!)
wchargin

@wchargin হ্যাঁ, @qএটি খালি থাকা দরকার। শুধু :wqaপরিবর্তে না কেন ? এছাড়াও জানতে চান কীভাবে ভিমে একটি ফ্র্যাক্টাল উত্পন্ন করা যায়? qqqqq<C-w>v<C-w>n@qq@q: ডি
ডিজেএমসিহেম

18

পাইথন, 40 বাইট

f=lambda s,i=0:s[i:]and s+f(s[::-1],i+1)

একটি পুনরাবৃত্তি ফাংশন। sকাউন্টারটির iদৈর্ঘ্য ছাড়িয়ে যাওয়া না হওয়া পর্যন্ত ইনপুট স্ট্রিংটি বিপরীত ফাংশনে প্রস্তুত করে s


কি দারুন. আমি মাত্র একটি 56 বাইট পাইথন উত্তর জমা দিতে
যাচ্ছিলাম

@ ডিজেএমসিএমহেম এটি lambda s:(len(s)*(s+s[::-1]))[:len(s)**2]এক বাইট দ্বারাও মারধর করে।
জোনাথন অ্যালান

আমি এটি পেয়েছি f = lambda s : ''.join([s[((-1)**(i//len(s)) <= 0)*(len(s)-1)+(-1)**(i//len(s))*(i%len(s))] for i in range(len(s)*len(s))])তবে এটি অনুসারে এটি 136 বাইট sys.sizeof, আকর্ষণীয়ভাবে এটি একই আকারেরf = lambda s : ''.join([s[::1] if i%2 else s for i in range(len(s))])
ক্যারেল

12

ব্রেন-ফ্লাক , 418 378 228 বাইট

এটি আমার ব্রেইন-ফ্লাক মাস্টারপিস। এটি ভাল গল্ফ নাও হতে পারে তবে চ্যালেঞ্জটি আমার পক্ষে সবচেয়ে কঠিন।

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

(([])[()]){({}[()]<(({}(<()>))<{({}[()]<(({}()<(({}<>))>)<({()<({}[()]<({}<({}<>)<>>)>)>}{}<>){({}[()]<({}<>)<>>)}{}>)>)}{}{}<>([]){{}({}<>)<>([])}{}<>>)>)}{}([(({}))]{({})({}[()])}{}){(({}[({}<>)<>])<<>({}<><{(({}[()])<{({}[()]<({}<({}<>)<>>)>)}{}<>([]){{}({}<>)<>([])}{}<>>)}{}>)>)}

ব্যাখ্যা

এই ব্যাখ্যাটি এখন কিছুটা পুরানো তবে এটি প্রোগ্রামটি ব্যাখ্যা করার জন্য এখনও বেশ ভাল কাজ করে।

এই ব্যাখ্যাটি আমার নিয়মিত ব্যাখ্যা প্রক্রিয়া থেকে কিছুটা আলাদা হতে চলেছে। আমি কীভাবে এই ফলাফলটি সম্পর্কে এসেছি তা ক্রমবিন্যাসের পরিবর্তে ফলাফল ব্যাখ্যা করার পরিবর্তে আমি ব্যাখ্যা করতে যাচ্ছি। এখানে এটা যায়:

বেলন

বেশ খানিকটা সমস্যার পরে কাজ করার পরে আমি এই কোডটি নিয়ে এসেছি:

(n[()])({()<({}[()]<({}<({}<>)<>>)>)>}{}<>){({}[()]<({}<>)<>>)}{}<>

এই কোডটি (যেখানে n কিছু সংখ্যার জন্য আক্ষরিক eg উদাহরণস্বরূপ ()()) স্ট্যাকের শীর্ষে আইটেমটি নেবে এবং এটিকে n পদক্ষেপে নামিয়ে দেবে। স্ট্যাকের উচ্চতা হিসাবে এন সহ এটি একটি স্ট্যাক "রোল" সম্পাদন করবে। অর্থাৎ উপরের আইটেমটিকে স্ট্যাকের নীচে সরিয়ে নিন move এখানে কিভাবে এটা কাজ করে:

আমরা স্ট্যাকের মধ্যে আইটেমটি বিয়োগফলে স্থানান্তর করতে চাইলে সেই স্থানটি রেখেছি। কেন বিয়োগ? আমি জানি না এটি ঠিক সেভাবে কাজ করে।

(n[()])

আমরা তখন অবধি লুপ করব যতক্ষণ না এই সংখ্যাটি একটি দিয়ে লুপের শূন্য রক্ষা ট্র্যাকে পৌঁছায় ()

{()<({}[()]<...>)>)>}{}

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

({}<({}<>)<>>)

আমাদের এখনই যা করতে হবে তা হ'ল আমরা যে নম্বরগুলি ফিরে এসেছি সেগুলি রাখা। আমরা অফ স্ট্যাকে স্যুইচ করি এবং তৈরি লুপের রান সংখ্যাটি ধাক্কা।

(...<>)

আমরা নতুন ধাক্কা দেওয়া নম্বরটি শূন্য না হওয়া অবধি লুপ করছি প্রতিবার আমরা একটি নম্বর পিছনে সরানো।

{({}[()]<({}<>)<>>)}{}<>

বিপরীত

আমি পরবর্তী সময়ে পুরো স্ট্যাকের বিপরীতে তৈরি করতে রোলটি সংশোধন করেছি:

(n){(({}[()])<{({}[()]<({}<({}<>)<>>)>)}{}<>([]){{}({}<>)<>([])}{}<>>)}{}

আবার n বিপরীত গভীরতার প্রতিনিধিত্ব করে। এটি স্ট্যাকের শীর্ষ এন আইটেমগুলি বিপরীত হবে। কিভাবে এটা কাজ করে:

বিপরীতটি কেবল একটি কল্পিতভাবে আবৃত রোলার। আমরা স্ট্যাকের উপরের বারটিকে প্রতিটি বারের সাহায্যে রোলের গভীরতা হ্রাস করে থাকি।

(n){(({}[()])<ROLLER>)}{}

প্রতিলিপি

জায়গায় নকল করা শক্ত is খুবই কঠিন. আমি কীভাবে স্ট্যাকটি বিপরীত করব তা বুঝতে পেরে ডুপ্লিকেশন অ্যালগরিদমটি নিয়ে আসতে এখনও প্রচুর প্রচেষ্টা নিয়েছে।

এটা এখানে:

(((n)<{({}[()]<(({}<>))<>>)}{}<>>)<{({}[()]<({}<>)<>([][()])({()<({}[()]<({}<({}<>)<>>)>)>}{}<>){({}[()]<({}<>)<>>)}{}<>>)}{}<>([]){{}({}<>)<>([])}{}<>([]){(({}[()])<{({}[()]<({}<({}<>)<>>)>)}{}<>([]){{}({}<>)<>([])}{}<>>)}{}>)

এটি কিছুটা বড় হলেও এটি এখানে কীভাবে কাজ করে তা এখানে:

ঠেলা দিয়ে শুরু করুন। n হ'ল নকলটির গভীরতা। আমরা দুটি বন্ধনীও খুলি। এগুলি আমাদের n এর প্রয়োজন পুনরায় প্রয়োজন না হওয়া অবধি স্কোপে সংরক্ষণ করতে দেয়।

(((n)<

এরপরে আমরা প্রতিবার স্ট্যাকের শীর্ষ মানেরটিকে দুটি বার অফ স্ট্যাকের দিকে ঠেলে এন বার লুপ করি। এটি স্ট্যাকের প্রতিটি সংখ্যার জন্য প্রাথমিক নকল তৈরি করে।

{({}[()]<(({}<>))<>>)}{}

এখন অফস্ট্যাকে আমাদের প্রতিটি সংখ্যার দুটি কপি রয়েছে। এগুলি দুটি দলে বিভক্ত করা দরকার।

সুতরাং আমরা অফস্ট্যাকে স্যুইচ করি এবং শুরুতে আমরা যে এনএস সংরক্ষণ করেছিলাম তার একটি স্মরণ করি।

<>>)

আমরা n বার লুপ।

{({}[()]<...>)}{}

প্রতিবার আমরা একটি অনুলিপি মুখ্য স্ট্যাকে স্থানান্তরিত করি।

({}<>)<>

এবং স্ট্যাকের নীচে একটি অনুলিপি রোল করুন। (এটি ধরে নিয়েছে যে এই ডুপ্লিকেটটি স্ট্যাক পরিষ্কার না করেই অফস্ট্যাকটি খালি ছিল)

([][()])ROLLER

এটি হয়ে গেলে আমরা মূলটিকে দুটি মূল গ্রুপে "অরিজিনাল" এবং অফস্ট্যাকের একটি অনুলিপি বিভক্ত করে দিয়েছিলাম (অনুলিপিটি আসলে বিপরীতে থাকে)। সুতরাং আমরা কেবল অনুলিপিটি মূল স্ট্যাকের দিকে সরিয়ে নিয়েছি এবং এটি দিয়ে আমরা কাজটি করতে পারি।

([]){{}({}<>)<>([])}{}<>

কঙ্কাল প্রোগ্রাম

এখন আমি প্রোগ্রামটির সমস্ত টুকরো তৈরি করেছি, আমাকে কেবল একটি ফ্রেমে toোকাতে হবে।

নকল ব্যবহার করে ফ্রেমটি স্ট্যাকের উচ্চতার বারের চেয়ে পাঠ্যকে দ্বিগুণ করে।

(([])[()])
{
 ({}[()]<
  DUPLICATE 
 >)
>)}{}

এবং তারপরে n ^ 2-n থেকে 0 এ প্রাথমিক স্ট্যাকের উচ্চতার হ্রাস বৃদ্ধিতে স্ট্যাকটিকে বিপরীত করে।

(({}))
{
 (({}[()])<
  ({}<>)<>(({}))({<({}[()])><>({})<>}{})<>{}<>
  ({}<({}<>)<>>)<>({}<>)
  ({}<
   REVERSE
  >)
 >)
}{}{}

5
অ্যামেজিং। এই ভাষা কী করতে পারে তা দিয়ে আপনি সর্বদা আমার মনকে ঘৃণা করেন! : ডি
ডিজেএমসিহেম

10

জেলি , 4 3 বাইট

,Ṛṁ

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন।

@ মাল্টেসেনকে একটি বাইট ধন্যবাদ সংরক্ষণ করা হয়েছে

ব্যাখ্যা

,Ṛṁ  Input: string S
 Ṛ    Reverse S
,     Join S with reverse of S. Makes a list [S, rev(S)]
  ṁ   Mold [S, rev(S)] to len(S) by repeating elements cyclically
      Return and print implicitly as a string


@ মালটিসেন বাহ্ ধন্যবাদ, আপনি কি জানেন যে উত্স কোড থেকে বা অভিজ্ঞতা থেকে
মাইল

অভিজ্ঞতা থেকে, আমি জেলিকে চিনি না, তবে আমি অনুমান করলাম যে ছাঁচটি একটি নন-নাম্বারটিতে কী করবে, যেহেতু জেলি সত্যিই ওভারলোডগুলি করে না, ছাঁচ কিন্ডা আমাকে জে থেকে পুনর্নির্মাণের কথা স্মরণ করিয়ে দিয়েছিল
মাল্টেসেন

ছাঁচ আসলে কেবল পুনরাবৃত্ত লাগে তবে এটি প্রথমে পরিসীমাটিকে কাস্ট করে।
ডেনিস

1
হ্যাঁ আমি ছাঁচটিকে পুনরায় আকার হিসাবে বিবেচনা করেছি তাই আমি অভ্যাসগতভাবে এটি একটি নম্বর দিয়েছি। জেলিতে অনেক ঝরঝরে সামান্য ট্রিটস রয়েছে, যেমন স্ট্রিংগুলির একটি অ্যারে কেবল স্বয়ংক্রিয়ভাবে একটি কাঠের স্ট্রিং হিসাবে আউটপুট হয়
মাইল

9

পিএইচপি, 54 52 বাইট

(49 বাইট, তবে স্ট্রিংয়ে '0' থাকলে কাজ করবে না)

for(;($a=$argv[1])[$i++];)echo$i%2?$a:strrev($a);

(৫২ বাইট)

<?=str_pad('',strlen($a=$argv[1])**2,$a.strrev($a));

(৫৪ বাইট)

for(;$i++<strlen($a=$argv[1]);)echo$i%2?$a:strrev($a);

আমি সম্পূর্ণরূপে ভুলে গেছি str_pad। সুন্দর!
তিতাস


6

রুবি, 39 বাইট

->(s){s.reverse!.gsub(/./){s.reverse!}}

আমি রুবিকে চুষছি। গল্ফিং সাহায্য প্রশংসা করা হয়।

এর জন্য রুবি একটি দুর্দান্ত ভাষা .reverse!

ব্যাখ্যা

আমি আশা করছিলাম যে এটি কিছু সহজ হবে:

s.gsub(/./){s.reverse!}

তবে বয়লারপ্লেট / চ্যালেঞ্জের সীমাবদ্ধতার কারণে এটি দীর্ঘতর।

কি s.reverse!খুব দরকারী। s.reverse!এটি মূলত s = s.reverse!পরিবর্তিত হয় যার অর্থ s


প্রোগ্রামটির প্রতিটি বিভাগ যা করে তা নীচে বর্ণিত:

->(s){             # Lambda with argument s
      s.reverse!   # Reverse `s` see above for details
      .gsub(/./)   # Replace every character with...
      {s.reverse!} # the input reversed!

জিনিস সম্পর্কে s.reverse!যে মহান যে তারা এগুলো মূল্যায়ন করা হয় স্ট্রিং পেতে ফ্লিপ নেই। এটি স্ট্রিং প্রতিস্থাপন হিসাবে। sসংশোধিত!


সঙ্গে -pপতাকা আপনি 4 বাইট সংরক্ষণ করতে পারেন:$_.reverse!;gsub(/./){$_.reverse!}
জর্ডন

@Jordan would't আমি প্রয়োজন .chompযদিও উপর $_? এই মুহুর্তে এটি নতুন
লাইনটি

না যদি আপনি ভালো কিছু করতে ruby -pe '$_.reverse!;gsub(/./){$_.reverse!}' < file.txtযেখানে file.txtচিহ্ন সম্পর্কে newline ছাড়া একটি লাইন: আপনি যে কাজ করতে না করেন, যাইহোক ভী, আপনি ল্যামডা উপর ডান বন্ধনী প্রয়োজন হবে না, যাতে ->sকাজ
মূল্য কালি

@ ভালিউইঙ্ক, আপনি পাইপ দিলে ফাইল ছাড়াই নিউলাইনলেস ইনপুট সরবরাহ করতে পারবেন। অথবা আপনি নিজে নিজে এটিকে টাইপ করতে পারেন, কেবল এন্টার টিপুন না: i.stack.imgur.com/6luxM.png
manatwork

1
ল্যাম্বদার যুক্তিটির চারপাশে আপনার প্রথম বন্ধনী দরকার নেই need এছাড়াও, আমি মনে করি আপনি একটি s.gsub(/./){s.reverse!.reverse}
উদ্দীপনা

6

পার্ল, 24 বাইট

জন্য +2 অন্তর্ভুক্ত -lp

এসটিডিনে ইনপুট দিন:

rev.pl <<< Hello!

rev.pl:

#!/usr/bin/perl -lp
s%.%s/.?/chop/eg;$`%eg

আশ্চর্যজনকভাবে এটি বিল্টিন reverseঅপারেটরটি ব্যবহার করে না । এই নামটি খুব দীর্ঘ, আমি যে সকল সমাধানের সাথে ভাবতে পারি তা reverseকমপক্ষে 1 বাইট দীর্ঘ longer


বিল্ট-ইন
মিল্কিওয়ে ৯০

6

জে, 13 8 বাইট

মাইল 5 বাইট ধন্যবাদ সংরক্ষণ করা!

#;@$];|.

এটি নিম্নলিখিত ক্রিয়া সহ একটি 5-ট্রেন:

# ;@$ ] ; |.

অভ্যন্তরীণ কাঁটাচামচটি ](পরিচয়), ;(লিঙ্ক) এবং |.(বিপরীত) দ্বারা গঠিত। পালন:

   (| ; |.) 'Hello!'
+------+------+
|Hello!|!olleH|
+------+------+

বাইরের দুটি ক্রিয়া বাকী ট্রেন তৈরি করে। #এই ক্ষেত্রে, যুক্তির আকার, যা দৈর্ঘ্য। এগুলি সংযুক্ত ক্রিয়াটি হয় ;@$, বা ravelতারও বেশি reshape। পালন:

   # 'Hello!'
6
   6 $ (] ; |.) 'Hello!'
+------+------+------+------+------+------+
|Hello!|!olleH|Hello!|!olleH|Hello!|!olleH|
+------+------+------+------+------+------+
   ; 6 $ (] ; |.) 'Hello!'
Hello!!olleHHello!!olleHHello!!olleH
   6 ;@$ (] ; |.) 'Hello!'
Hello!!olleHHello!!olleHHello!!olleH
   (# ;@$ (] ; |.)) 'Hello!'
Hello!!olleHHello!!olleHHello!!olleH
   (# ;@$ ] ; |.) 'Hello!'
Hello!!olleHHello!!olleHHello!!olleH
   (#;@$];|.) 'Hello!'
Hello!!olleHHello!!olleHHello!!olleH

পুরানো সমাধান।

[:,|.^:(i.@#)

যথেষ্ট সহজ। |.বিপরীত, এবং ^:এটি শক্তি সংমিশ্রণ, যা এটির বাম ক্রিয়া (ডান হাত) # বার পুনরাবৃত্তি করে। যখন সঠিক যুক্তি একটি ক্রিয়া হয়, তখন সেই ক্রিয়াটি আর্গুমেন্টকে ডাকা হয়। এই ক্ষেত্রে ডান ক্রিয়াটি শূন্য ( i.) থেকে দৈর্ঘ্য ( #) পর্যন্ত। যখন একটি অ্যারেতে উত্থাপিত হয়, মধ্যবর্তী ফলাফল রাখা হয়। যা করা দরকার তা হ'ল অ্যারে সমতল করা ,

মধ্যবর্তী ফলাফল

   (i.@#) 'Hello!'
0 1 2 3 4 5
   |.^:0 1 2 3 4 5 'Hello!'
Hello!
!olleH
Hello!
!olleH
Hello!
!olleH
   |.^:(i.@#) 'Hello!'
Hello!
!olleH
Hello!
!olleH
Hello!
!olleH
   ([:,|.^:(i.@#)) 'Hello!'
Hello!!olleHHello!!olleHHello!!olleH

দৈর্ঘ্য বক্সিং করে আপনি একটি বাইট সংরক্ষণ করতে পারেন<@#
মাইল

একটি ঝরঝরে 8 বাইট সমাধান #;@$];|.যা প্রাথমিক এবং বিপরীতটি বক্স করে, বক্সযুক্ত স্ট্রিংগুলিকে পুনরায় আকার দেয় এবং তাদের একসাথে রেজে দেয়
মাইল

@ মাইল ওহ, এটি বেশ ঝরঝরে।
কনর ও'ব্রায়েন

5

জাভাস্ক্রিপ্ট (ইএস 6), 59 50 বাইট

9 বাইটস হেডি এবং হান্ট্রোর ধন্যবাদ জানায়।

f=(s,n=1)=>s[n]?s+f([...s].reverse().join``,n+1):s

পুনরাবৃত্তি ফাংশন।

স্ট্রিংটির বিপরীতে আকারের প্রায় অর্ধেক অংশ লাগে ( 25 22 বাইট!) ...
কেন এর কোনও স্থানীয় উপায় নেই?


1
আপনি s[n]?...ইডিএড ব্যবহার করতে পারেনn<s.length?...
হেডি

1
আপনি এর [...s]পরিবর্তে 3 বাইট সংরক্ষণ করতে পারেনs.split``
হান্ট্রো

হ্যাঁ 36 বাইট আদর্শভাবেf=(s,n=1)=>n==1?s:s+s.reverse(),n-1)
কৌক করুন

অপরিবর্তিত এক f=(s,n=1)=>Array.from({length:n},(_,i)=>i%2?s.reverse():s).join``)যা পরিসরের জন্য কিছু ভাল ফাংশন দিয়ে খুব ভাল হবে
15:58

@ কাউউব: জেএসের SyntaxError: Unexpected token )কোনও নেটিভ স্ট্রিং রিভার্সন নেই। SyntaxError: Invalid or unexpected tokenআপনার দ্বিতীয় পরামর্শের জন্য। এটি কোন ব্রাউজারে কাজ করে?
তিতাস

4

মিনকোলাং , 17 বাইট:

$oId$z$Dz[rz[O]].

এখানে চেষ্টা করুন!

ব্যাখ্যা

$o                   Read in whole input as characters
  Id                 Push the length of stack and duplicate
    $z               Pop top of stack and store in register (z)
      $D             Pop top of stack (n) and duplicate whole stack n-1 times
        z[     ]     z times, do the following:
          r          Reverse the stack
           z[O]      z times, pop the top of stack and output as character
                .    Stop.

4

8088 বিধানসভা, আইবিএম পিসি ডস, 29 28 বাইট

সমবেত, ফেলা xxd:

00000000: d1ee ac48 938a cbfc 518a cbf7 da78 01fd  ...H....Q....x..
00000010: acac b40e cd10 e2f9 59e2 ecc3            ........Y...

অ-জমায়েত তালিকা:

D1 EE       SHR  SI, 1          ; point SI to DOS PSP (080H) 
AC          LODSB               ; load input string length into AL 
48          DEC  AX             ; remove leading space from length counter 
93          XCHG BX, AX         ; save input length to BL 
8A FB       MOV  BH, BL         ; string output counter in BH 
        S_LOOP: 
FC          CLD                 ; set direction forward 
8A CB       MOV  CL, BL         ; reset char counter in CL 
F7 DA       NEG  DX             ; flip DX to toggle fwd/back output 
78 01       JS   C_START        ; if positive, go forward 
FD          STD                 ; otherwise go backwards 
        C_START: 
AC          LODSB               ; adjust SI to first/last char
        C_LOOP: 
AC          LODSB               ; load next char into AL
B4 0E       MOV  AH, 0EH        ; PC BIOS tty output function
CD 10       INT  10H            ; write char to console
E2 F9       LOOP C_LOOP         ; continue looping through chars
FE CF       DEC  BH             ; decrement string count loop
75 EC       JNZ  S_LOOP         ; if not zero, continue loop
C3          RET                 ; exit to DOS

স্বতন্ত্র পিসি ডস এক্সিকিউটেবল প্রোগ্রাম। কমান্ড লাইনের মাধ্যমে ইনপুট স্ট্রিংটি আউটপুট কনসোল।

এখানে চিত্র বর্ণনা লিখুন



3

হাস্কেল, 40 36 32 বাইট

m s=take(length s^2)$cycle$s++reverse s

উদাহরণ:

*Main> m "Hello!"
"Hello!!olleHHello!!olleHHello!!olleH"

এমনকি সংক্ষিপ্ত (ড্যামিয়ানের কাছে ক্রেডিট):

q s=zip(s>>[s,reverse s])s>>=fst

গুলি >> [গুলি, বিপরীত এস] চক্র ["এবিসি", "সিবিএ", ...] যা আকারের জন্য সঠিকভাবে জিপ করা হয় এবং এফএসটি দিয়ে কনক্যাটম্যাপ করা হয়


2
q s=zip(s>>[s,reverse s])s>>=fst
ড্যামিয়েন

3
বা একই আকারের পয়েন্টফ্রি এক:(>>=fst).(iterate reverse>>=zip)
ড্যামিয়েন

3

পার্ল 6 ,  31  30 বাইট

{[~] (|($_,.flip)xx*)[^.chars]}

অপব্যবহার করে একটি বাইট সংরক্ষণ করুন .ords, যা অধ্যক্ষগুলির একটি তালিকা ফেরত দেয়, তারপরে স্পষ্টভাবে একটি পরিসর তৈরি করতে এটি একটি সংখ্যায় রূপান্তরিত করে।

{[~] (|($_,.flip)xx*)[^.ords]}

ব্যাখ্যা:

# bare block lambda with implicit parameter 「$_」
{
  # reduce using string concatenation operator 「~」
  [~]

  (
    # create a Slip
    |(
      # of the input, and its string reverse
      $_, .flip

    # list repeated infinitely
    ) xx *

  # get the values in the range from 0 up-to and excluding
  # the number of characters 「0 ..^ +$_.ords」
  )[ ^.ords ]
}

ব্যবহার:

my &code = {[~] (|($_,.flip)xx*)[^.ords]}

say code 'a'; # a
say code 'abcd'; # abcddcbaabcddcba
say code 'OK!'; # OK!!KOOK!
say code 4815162342; # 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184

3

ভিম + কোর্টিলস, 32 টি কিস্ট্রোক

আপনার কখনই খুব বেশি ভিম উত্তর থাকতে পারে না।

qqYv:!rev
Pjq@=len(@")
@q2dkv{gJ

ব্যাখ্যা

qq               " Start recording macro
Y                " Yank (copy) line
v:!rev<CR>       " Reverse line with coreutils rev command
Pj               " Paste yanked line above this line
q                " Stop recording
@=len(@")<CR>@q  " Playback macro once for each character
2dk              " Delete last 3 lines
v{gJ             " Join lines

1
কোর্টিল সহ? এটাই প্রতারণা! : পি
খ্রিস্টান রোনডো

3

এমএটিএল, 13 12 8 বাইট

সব উপাদান ঠেলা, শেষ একত্রিত।

td"tP]&h

td"  ]     %For loop over string length - 1 due to diff
   tP      %Push copy of string, reverse
      &h   %Concatenate entire stack horizontally

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


পুরানো সংস্করণ:

সম্পূর্ণ ভিন্ন পদ্ধতির উপর ভিত্তি করে fprintf:

t"t1$0#YDP]x

t"        ]   % For loop over string
  t           % Duplicate string for printing:
   1$0#YD     % `fprintf` with 1 input, 0 output (i.e., to screen).
         P    % Reverse
           x  % Empty stack to prevent implicit output

কোনও টেম্পলেট স্ট্রিংকে উল্টানোর উপর ভিত্তি করে সংস্করণ

ttd"wPtbYc]Dx

t                 %Duplicate input, to create 'accumulator' string 
                  % (alongside the input string which will serve as 'template'
 td               %Duplicate input, diff to get an stringof size input-1
   "       ]      %For loop over size n-1 string (consumes diff'd string)
     wP           %Get 'template' string on top of stack, and reverse
       tb         %Duplicate template string, and switch with 'accumulator' string
         Yc       %Concatenate template string with accumulator. 
            Dx   %Display top element, delete template string to prevent implicit disp

আমি চতুর ব্যবহার পছন্দ করি td!
ডিজেএমসিএমহেম

@ ডিজেএমসিমেহেম ধন্যবাদ! আমার স্পষ্টতই tnq:"প্রথম ছিল, তবে tn:"কিছুটা গন্ধের কোড ( এই মতলব গল্ফিং টিপ দেখুন) তাই আমি অনুভব করেছি যে tnq:এটি আরও কমপ্যাক্ট হতে পারে।
সানচিইস

3

স্কালা, 73 72 71 বাইট

def f(s:String)=for(i<-1 to s.length){print(if(i%2>0)s else s.reverse)}

কোড গল্ফিংয়ের এটি আমার প্রথম প্রচেষ্টা, সুতরাং আমি নিশ্চিত যে এখানে অসংখ্য উন্নতি হয়েছে।

হালনাগাদ:

বন্ধনী বন্ধ করে 1 বাইট গল্ফ করে।

পরামর্শের জন্য ধ্বংসাত্মক তরমুজকে ধন্যবাদ, একটি বাইট বন্ধ করে দেওয়া।


আমি স্কেলা জানি না, তবে আপনি কি এতে পরিবর্তন i%2==1করতে পারবেন i%2>0?
ধ্বংসাত্মক লেবু

@ আবিষ্কারযোগ্য জলছবি এই কথা ভাবেনি, হ্যাঁ আমি পারি
Himself12794

3

কিউবিক্স , 52 বাইট

Ap\:\;.#u/\:qqsoq(?;u.q..$u<../pB@u:\.....\(?q..s..p

একটি কিউবে:

      A p \
      : \ ;
      . # u
/ \ : q q s o q ( ? ; u
. q . . $ u < . . / p B
@ u : \ . . . . . \ ( ?
      q . .
      s . .
      p . .

এই এক মজা ছিল; এ থেকে গল্ফ করা এখনও বাইটস আছে তবে এটি অবশ্যই কাজ করবে।

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

ব্যাখ্যা:

ইনপুট ABC

  • /A: উত্তর যান এবং সমস্ত ইনপুট অক্ষর হিসাবে পড়ুন; -1নীচে হবে
  • p\;.: -1স্ট্যাক থেকে অপসারণ
  • u# : স্ট্রিং দৈর্ঘ্য (স্ট্যাকের আইটেমের সংখ্যা) টিপুন
  • \:\:qq : স্ট্রিংয়ের দৈর্ঘ্যের দ্বিগুণ করুন, দুটি অনুলিপি স্ট্যাকের নীচে টানুন
  • লুপ:

    • soq(?/<u : স্ট্যাকের শীর্ষে অদলবদল, এএসসিআইআই হিসাবে স্ট্যাকের আউটপুট শীর্ষ, শীর্ষে (চিঠি) নীচে চাপুন, স্ট্যাকের হ্রাসের শীর্ষে, সম্পন্ন না হলে ডানদিকে ঘুরুন, তারপরে আইপিটি সঠিক জায়গায় সরিয়ে নিন।
    • লুপের শেষে, স্ট্যাকটি দেখতে লাগবে C B A 3 3 0
  • ;u : স্ট্যাকের পপ টপ C B A 3 3

  • B : বিপরীত স্ট্যাক 3 3 A B C
  • p( : নীচে শীর্ষে এবং হ্রাস 3 A B C 2
  • ?যদি শীর্ষটি শূন্য হয় তবে সরাসরি যান @এবং শেষ করুন
  • আর
    • psq:uq : নীচে থেকে উপরে সরান, শীর্ষে অদলবদল করুন এবং উপরে নীচে ডুপে যান এবং উপরে নীচে যান move 3 2 A B C 3
    • $u : এড়িয়ে যান u
    • < আমাদের আবার লুপে রাখে।

অনুবাদক


এখানে একটি 24 বাইট আছে । একই সাধারণ যুক্তি স্রেফ একটু সংকুচিত।
মিকিটি

@ মিকিটি আমি গল্ফিংয়ের 28 বাইটের জন্য ক্রেডিট নেওয়ার বিষয়ে খারাপ লাগছি। এটি নিজে পোস্ট করুন!
জিউসেপে

3

সি (জিসিসি) , 88 87 85 83 68 66 83 82 78 বাইট

-1 সিলিংক্যাট ধন্যবাদ

পুরাতন রুপ

p,q;f(char*s){p=q=1;for(char*m=s--;*m;s[p+=q]*p?:(m++,p+=q=-q))putchar(s[p]);}

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

সংক্ষিপ্ত সংস্করণ (কিছুটা ভাঙ্গা)

এএসসিআইআই-র by 76 বাইট পদ্ধতির উপর রিফিং করা হচ্ছে কেবল মন্তব্যে, এবং -১ আমার বোধকটির টুইট থেকে বাইট।

সম্পাদনা: এই সংস্করণটি কিছুটা ভাঙা হয়েছে কারণ এটি ধরে নেওয়া হয় যে প্রতিটি স্ট্রিংয়ের আগে একটি ন্যুয়াল বাইট থাকে, যা সর্বদা সত্য হয় না। (লিঙ্কে শেষ পরীক্ষার কেসটি দেখুন)। আপাতত 83 বাইট সংস্করণে ফিরছে।

f(char*s){for(char*n=s-1,k=1;*s++;k=-k)for(;*(n+=k);)putchar(*n);}

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



@ এএসসিআইআই-কেবলমাত্র 68 টি টুইট করা সম্ভব।
গ্যাস্ট্রোপনার

: পি এটি এখন 67 লস @ গ্যাস্ট্রোপনার
এএসসিআইআই-কেবল

@ ASCII- কেবল 66
:-P

@ এএসসিআইআই-কেবল দুঃখের বিষয়, সংক্ষিপ্ত সংস্করণটি নির্দিষ্ট কিছু ক্ষেত্রে কাজ না করে।
গ্যাস্ট্রোপনার

2

জাভা, 127 111 88 বাইট

(s,r)->{for(int i=0;i++<s.length();)r+=i%2<1?new StringBuffer(s).reverse():s;return r;};

অসম্পূর্ণ পরীক্ষা প্রোগ্রাম

    public static void main(String[] args) {
    BiFunction<String, String, String> func = (s, r) -> {
        for (int i = 0; i++ < s.length();) {
            r += i % 2 < 1 ? new StringBuffer(s).reverse() : s;
        }
        return r;
    };
    System.out.println(func.apply("Hello!", ""));
}

এটি আরও কিছু গল্ফ করা যেতে পারে: (s,r)->{for(int i=0;i++<s.length();)r+=i%2<1?s:new StringBuffer(s).reverse();return r;};( ৮৮ বাইট )। এছাড়াও, আমি উল্লেখ করব যে এটি জাভা ৮
কেভিন ক্রুইজসেন

না, ধরে নেওয়া যায় না যে তিনি জাভার সর্বশেষতম সংস্করণটি ব্যবহার করছেন।
শান ওয়াইল্ড

@ কেভিন ক্রুজসেন জাভা 7 আর সমর্থিত নয় (বড় $$$ বাদে)। আমাদের জাভাটির সংস্করণ নির্দিষ্ট করতে হবে না। এছাড়াও, আপনি জাভা 7 হিসাবে লিখলে, বেশিরভাগ উত্তর জাভা 1.1 বা 1.2 তে লেখা যেতে পারে। সুতরাং এটির সাথে সর্বনিম্ন সংস্করণটি লিখতে হবে না? যদি এই উত্তরের কোডটি জাভা 7 মেনে চলতে থাকে তবে এটি জাভা 1.2 এর অনুবর্তী হবে এবং ... এখনও জাভা 8-তে কাজ করবে
অলিভিয়ার গ্রাগোয়ার

2

আর, 53 বাইট

ধরে নেওয়া যায় যে ইনপুটটি প্রতিটি অক্ষরের জন্য স্পেস- বা নিউলাইন দ্বারা পৃথক।

cat(rep(c(i<-scan(,""),rev(i)),l=length(i)^2),sep="")

কিছু পরীক্ষার কেস:

> cat(rep(c(i<-scan(,""),rev(i)),len=length(i)^2),sep="")
1: h e l l o !
7: 
Read 6 items
hello!!ollehhello!!ollehhello!!olleh

> cat(rep(c(i<-scan(,""),rev(i)),l=length(i)^2),sep="")
1: a
2: 
Read 1 item
a

> cat(rep(c(i<-scan(,""),rev(i)),l=length(i)^2),sep="")
1: a b c d
5: 
Read 4 items
abcddcbaabcddcba

> cat(rep(c(i<-scan(,""),rev(i)),l=length(i)^2),sep="")
1: O K !
4: 
Read 3 items
OK!!KOOK!

> cat(rep(c(i<-scan(,""),rev(i)),l=length(i)^2),sep="")
1: 4 8 1 5 1 6 2 3 4 2
11: 
Read 10 items
4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184

> cat(rep(c(i<-scan(,""),rev(i)),l=length(i)^2),sep="")
1: P P C G
5:    
Read 4 items
PPCGGCPPPPCGGCPP

> cat(rep(c(i<-scan(,""),rev(i)),l=length(i)^2),sep="")
1: 4 2
3: 
Read 2 items
4224

2

পাওয়ারশেল ভি 2+, 57 বাইট

param($a)-join(1..($x=$a.length)|%{($a[$x..0],$a)[$_%2]})

স্ট্রিং দৈর্ঘ্য পেতে বা তাদের বিপরীত করার কোনও আসল পরিষ্কার উপায় নেই, সুতরাং এটি বেশ দীর্ঘ।

ইনপুট নেয় $a, থেকে লুপ 1হয় $a.length( $xপরে ব্যবহারের জন্য সঞ্চিত থাকে )। প্রতিটি পুনরাবৃত্তি আমরা আমাদের ইনপুট নম্বরটি বিজোড় / এমনকি পৃথক কিনা তার উপর ভিত্তি করে হয় $aবা $a[$x..0]( বা বিপরীত) এর অ্যারেতে সূচককে ছদ্ম-ত্রিনিদী ব্যবহার করি [$_%2]। এগুলি সমস্ত প্যারেন্সে এনক্যাপুলেটেড হয় এবং -joinএকত্রে স্ট্রিং তৈরি করতে একত্রে এড হয়। এটি পাইপলাইনে রেখে গেছে, এবং আউটপুট অন্তর্ভুক্ত।

PS C:\Tools\Scripts\golfing> .\stringgnirts.ps1 'TimmyD'
TimmyDDymmiTTimmyDDymmiTTimmyDDymmiT

2

জাভা, 151 বাইট

public static void r(String s){String t = new StringBuffer(s).reverse().toString();for(int i=0;i<s.length();i++){System.out.print(((i%2==1)?t:s));}}

}

Ungolfed:

public static void r(String s) {
    String t = new StringBuffer(s).reverse().toString();
    for(int i = 0; i < s.length();i++) {
        System.out.print(((i % 2 == 1) ? t : s));
    }
}


1
হাই, পিপিসিজিতে আপনাকে স্বাগতম! সবার আগে আমি জাভাতে গল্ফ করার টিপসের মাধ্যমে পড়ার পরামর্শ দিতে চাই । আপনার কোড হিসাবে, কয়েকটি জিনিস এখনও গল্ফ করা যেতে পারে: আপনি public staticআপনার পদ্ধতির আগে মুছে ফেলতে পারেন । আপনি মধ্যবর্তী স্থানগুলি সরাতে পারেন t=new StringBuffer। আপনি অপ্রয়োজনীয় প্রথম বন্ধনী এবং বন্ধনীগুলি সরাতে পারেন। এবং আপনার কাছ থেকে মডিউল চেক অদলবদল করতে পারেন ==1থেকে <1(যা সমতূল্য ==0অ ঋণাত্মক সংখ্যা জন্য)। এছাড়াও, আপনি i++লুপের অভ্যন্তরে সর্বশেষ ব্যবহারে যেতে পারেন ।
কেভিন ক্রুইজসেন

6
সুতরাং মোট এটি হয়ে যায়: void r(String s){for(int i=0;i<s.length();)System.out.print(i++%2<1?s:new StringBuffer(s).reverse()+"");}( 105 বাইট )
কেভিন ক্রুইজসেন

2

সি #, 94 বাইট

using System.Linq;string R(string n)=>string.Concat(n.SelectMany((c,i)=>1>i%2?n:n.Reverse()));

পদ্ধতির জন্য 76 বাইট + লিনকিউ আমদানির জন্য 18 বাইট

কিভাবে এটা কাজ করে:

using System.Linq; // Required for LINQ extension methods.

string R(string n) => 
    string.Concat( // Concatenate the following chars into a single string
        n.SelectMany( // Enumerate each char in n, flattening the returned IEnumerable<char>'s into a single IEnumerable<char>
            /*IEnumerable<char> Lambda*/(/*char*/ c, /*int*/ i) => // i = index in n
                1 > i % 2 // Check if i is even or odd
                    ? n // if i is even, add n to the concat
                    : n.Reverse() // else reverse n and concat that
        )
    )
;


2

অক্টাভা, 39 35 বাইট

@(x)[x'+~x;flip(x'+~x),''](1:end/2)

f('Hello!')
ans = Hello!!olleHHello!!olleHHello!!olleH

ব্যাখ্যা:

@(x)            % Take x as input, inside apostrophes 'Hello!'
x'+~x           % Create a mesh of the ASCII-code of the input letters
                % For input `bcd` this will be:
                %    98    98    98
                %    99    99    99
                %   100   100   100
;flip(x'+~x)   % Concatenate vertically to create:
                %    98    98    98
                %    99    99    99
                %   100   100   100
                %   100   100   100
                %    99    99    99
                %    98    98    98
___,'']         % Short cut to convert ASCII-code to characters
(1:end/2)       % Display the first half of this array of letters, as a
                % horizontal string

লুইসকে ধন্যবাদ 4 বাইট সংরক্ষণ করা। ~xপরিবর্তে 0*xসংরক্ষিত এক বাইট (কাজ কারণ এক্স সমস্ত উপাদান নন-জিরো হয়। flipপরিবর্তে flipudদুই বাইট সংরক্ষিত (আমি জানতাম না flipঅস্তিত্ব)।


2

বাশ + ইউজু-লিনাক্স, 68 58 53 বাইট

y=$1;for((i;i<${#1};i++)){ echo -n $y;y=`rev<<<$y`;}

ব্যাখ্যা

forলুপের সাথে দুটি জিনিস :

  • লেখার একটি দৃশ্যত অনথিভুক্ত উপায় নেই forলুপ যেখানে এক প্রতিস্থাপন doএবং doneকোঁকড়া ধনুর্বন্ধনী সঙ্গে কীওয়ার্ড {এবং }। প্রথম বন্ধনীটির পরে স্থানটি প্রয়োজনীয় এবং শেষে সেমিকোলনও প্রয়োজনীয়।
  • এটা যে "সি-শৈলী" এ দেখা যাচ্ছে forসঙ্গে লুপ, আপনি পারবেন শুধু আরম্ভ i;পরিবর্তে ব্যবহার i=0;
  • ${#1}অবস্থার অংশ i < ${#1}আমাদের ইনপুটের দৈর্ঘ্য (প্রথম প্যারামিটার বোঝায় $1)। সাধারণভাবে, আপনি ${#foo}স্ট্রিংয়ের আকার পুনরুদ্ধার করতে ব্যবহার করতে পারেন $foo

উপরন্তু:

  • rev ইউজার-লিনাক্সের একটি সরঞ্জাম যা স্ট্রিংটিকে বিপরীত করে।
  • নতুন লাইনগুলি থেকে মুক্তি পেতে আমাদের -nপতাকাটি পাস echoকরতে হবে।
  • এক্সপ্রেশনটিকে এখানেrev<<<$y একটি স্ট্রিং বলা হয় ( এটি প্রাসঙ্গিক tldp.org পৃষ্ঠা দেখুন ), যা $yএর স্ট্যান্ডার্ড ইনপুটটিতে ভেরিয়েবলটি পাস করে rev

আপনার জ্ঞান কিছু ব্যাখ্যা করুন। এছাড়াও প্রতিধ্বনির আগে স্থানটি অপসারণযোগ্য হতে পারে, তবে আমি বাশে জ্ঞাত হতে পারি না
রোহান ঝুনঝুনওয়ালা

@ রোহানঝুনঝুনওয়ালা উত্তর সম্পর্কে কিছুটা ব্যাখ্যা যুক্ত করেছেন সম্ভবত কিছু বিষয় পরিষ্কার করতে সহায়তা করুন। এছাড়াও: একটি লুপে কীওয়ার্ড doএবং doneকীওয়ার্ডগুলি বাদ দেওয়ার সময় forআপনার আসলে সেই জায়গার প্রয়োজন হয় না !
ফ্রেম

এখন +1 দেখতে দুর্দান্ত দেখাচ্ছে। আমি কেবল মন্তব্য করেছি কারণ আপনার কোডটি একটি স্বয়ংক্রিয় নিম্নমানের পতাকা আকর্ষণ করেছে। কোড-কেবল উত্তরগুলি অটো পতাকাঙ্কিত হয়
রোহান ঝুনঝুনওয়ালা

y=$1;for((;i<${#1};i++)){ printf $y;y=`rev<<<$y`;}...
কয়েকটা

2

জাপট , 11 বাইট

ê1 pUÊ ¯Uʲ
ê1          // Append the reverse of the input to the input,
   pUÊ      // then repeat it input length times
       ¯Uʲ // and finally trim to length input length squared.

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



@ শেগি আমি এটি ব্যবহার করার চেষ্টা করেছি, তবে আমার জীবনের জন্য, আমি এটির ঝুলন্ত পেতে পারি না। : পি উদাহরণস্বরূপ অনেক ধন্যবাদ, যদিও!
নিত

দুঃখিত, ভুল লিঙ্কটি পোস্ট করেছে, এটি আসলে 6 বাইট
শেগি


1
@ শেগি আমি কিছু মনে করব না, এবং এটি নীটের উত্তর থেকে আলাদা। লোকটির জন্য যাও।
অলিভার

2

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

vDR}v}J

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

এটি নিয়ে কাজ চালিয়ে যাবেন। আমি এর "ভি}" অংশটি সত্যিই পছন্দ করি না, সম্ভবত সেখানে একটি বাইট সংরক্ষণ করতে পারি।

ব্যাখ্যা

vDR}v}J

v         ; Iterates through each character
 D        ; Duplicate top of stack
  R       ; Push top of stack reversed
   }      ; end for loop
   v}     ; same as other v, effectively pops top of stack off
     J    ; Join everything together

1
vÂ}\J 5 বাইটগুলি আপনার কোডের সমান, তবে আপনি যে বিল্টিনগুলি সন্ধান করেছিলেন তা দিয়ে। :)Âবিফুরকেট (ডুপ্লিকেট এবং বিপরীতে সংক্ষিপ্তসার, যা আপনি যা করছেন ঠিক তেমন)। \ স্ট্যাকের শীর্ষ আইটেম মুছে ফেলে।
কেভিন ক্রুইজসেন 14
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.