অদলবদল করুন, মুছুন এবং পুনরাবৃত্তি করুন


24

ভূমিকা

নিম্নলিখিত স্ট্রিং পর্যবেক্ষণ করা যাক:

ABCDEFGHIJKLMNOP

যদি আমরা স্ট্রিংয়ের প্রান্তগুলি অদলবদল করি তবে এগুলি হল:

ABCDEFGHIJKLMNOP
^^            ^^

আমরা নিম্নলিখিত ফলাফল পেতে:

BACDEFGHIJKLMNPO

এর পরে, আমরা স্ট্রিংয়ের শেষগুলি মুছি, যা এই ক্ষেত্রে হয় Bএবং O। ফলাফল হলো:

ACDEFGHIJKLMNP

আমরা যদি প্রক্রিয়াটি পুনরাবৃত্তি করি তবে আমরা নিম্নলিখিত তালিকাটি পাই:

N     Result

2     ADEFGHIJKLMP
3     AEFGHIJKLP
4     AFGHIJKP
5     AGHIJP
6     AHIP
7     AP

আপনি দেখতে পাচ্ছেন যে এন = 5 এর জন্য ফলাফল AGHIJP। এ এন = 7 , স্ট্রিং এর দৈর্ঘ্য চেয়ে ছোট 3 তাই এন> 7 বিবেচনা করা হয়, অবৈধ এই ক্ষেত্রে।

কাজটি

কমপক্ষে দৈর্ঘ্য 4 এবং পুনরাবৃত্তির সংখ্যা N > 0 সহ একটি স্ট্রিং এস দেওয়া , চূড়ান্ত ফলাফলের আউটপুট। আপনি ধরে নিতে পারেন যে এন সর্বদা বৈধ

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

Input                               >  Output

N = 3, S = ABCDEFGHIJKLMNOP         >  AEFGHIJKLP
N = 1, S = Hello                    >  Hlo
N = 2, S = 123321                   >  11

এটি , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমাটি জয়! সরলতার জন্য, আপনি অনুমান করতে পারেন স্ট্রিং শুধুমাত্র উপস্থিত থাকবে আলফানিউমেরিক অক্ষর।


প্রশ্ন: 'গণনা চরিত্রের মতো কিছু দিয়ে এনকে একা করে নেওয়া কি ঠিক হবে ? উদাহরণস্বরূপ: ''123321?
দাভকো

@ দাভকো হ্যাঁ, অ্যানারি ডিফল্টরূপে গ্রহণযোগ্য
আদনান

@ আদনান ইউনারি ফর্ম্যাটটি ব্যবহার করা যেতে পারে N, তবে কোটগুলি সহ এটি কী স্ট্রিং হতে পারে? আমার অর্থ, N=3গ্রহণের জন্য '111'(এর বিপরীতে 111)
লুইস মেন্ডো

@ লুইস মেন্ডো হ্যাঁ, আপনি এটি ব্যবহার করতে পারেন
আদনান

আমার কাছে দেখে মনে হচ্ছে আমরা 1 টি এড়িয়ে N কে সরিয়ে দিচ্ছি - এটি কি উত্তর হিসাবে অনুমোদিত বা কোডটি মুছে ফেলার এবং পুনরাবৃত্তি করার দরকার আছে?
অ্যালেক্স কার্লসেন

উত্তর:


5

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

th"P[]2(

ইনপুটগুলি Nহ'ল প্রথমে উদ্ধৃতি সহ অরিয়া স্ট্রিং হিসাবে (চ্যালেঞ্জের দ্বারা অনুমোদিত); Sকোট যুক্ত স্ট্রিং হিসাবে দ্বিতীয় (স্ট্রিংগুলিতে উদ্ধৃতিগুলি ডিফল্টরূপে অনুমোদিত হয়); একটি লাইন ব্রেক দ্বারা পৃথক

এটি স্ট্রিংটি উল্টিয়ে, এর দ্বিতীয় উপাদানটি সরিয়ে, এবং মোট 2*Nবার বার পুনরাবৃত্তি করে ।

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

th       % implicitly take first input (N) as a unary string. Concatenate horizontally
         % with itself: gives a string of 2*N ones
"        % for each (i.e., repeat 2*N times)
  P      %   flip string. Take S implicitly as input the first time
  []     %   empty array (used as new contents)
  2      %   2 (used as index)
  (      %   assign [] to position 2 of string; that is, remove second element
         % implicitly end for each
         % implicitly display

ব্যাখ্যা? : পি
অ্যাডিসন ক্রম্প

@ ভোটটোক্লোজ শিওর :-) আমাকে দৌড়াতে হয়েছিল। আমি সবেমাত্র এটি যুক্ত করেছি
লুইস মেন্ডো

18

রেটিনা , 44 20 বাইট

ক্রস আউট 44 এখনও নিয়মিত 44 :(

+`'(\w).(.*).\B
$1$2

নিম্নলিখিত বিন্যাসে ইনপুট ধরেছে (অচল - গণনা চরিত্রে '):
{number of repeats}{string}
উদাহরণস্বরূপ: '''''''ABCDEFGHIJKLMNOP
পুনরাবৃত্তি সংখ্যা এবং স্ট্রিংয়ের মধ্যে কোনও স্থান নেই।

24 মার্টিন শেভ করার জন্য @ মার্টিনব্যাটনারকে ধন্যবাদ !

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



@ মার্টিনব্যাটনার আহা! সুতরাং এটি ছিল আপনার মনস্তাত্ত্বিক মাস্টারপ্ল্যান: পি
আদনান

9
@ আদনান ¯ \ _ (ツ) _ / ¯
মার্টিন এন্ডার

ক্রস আউট 44 দেখে মনে হচ্ছে 11 টি ক্রস আউট হয়েছে ...
কোকোবিয়ান


9

গণিত, 29 বাইট

আমার প্রথম উত্তর!

#~Delete~{{2},{-2}}&~Nest~##&

বন্ধনীহীন ম্যাথামিটারের কর্কশ! ফাংশন ইনপুটগুলি একটি তালিকা (অক্ষরের বা যা কিছু হোক) এবং একটি সংখ্যা।


1
পিপিসিজিতে আপনাকে স্বাগতম! : ডি প্রথম উত্তর।
অ্যাডিসন ক্রম্প

9

ভোল্টেজ , 40 বাইট

<
,,}:?
.
;("   {(={}{".
,",;=};} }) "{@

ইনপুটটি Nস্ট্রিং দ্বারা অনুসরণ করে, কোনও অ-সংখ্যাযুক্ত অক্ষর দ্বারা পৃথক separated

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

এটি এসপি 3000 এর সহযোগিতায় লিখিত হয়েছিল (যার অর্থ আমি কোনও অ্যালগরিদম বের করার জন্য বিরক্ত হতে পারি না, তাই তিনি এটিতে কাজ শুরু করেছিলেন, 118 বাইট সমাধান নিয়ে এসেছিলেন তবে এটি গল্ফ করে বিরক্ত করা যায় না, তাই আমি গল্ফিং করেছি)। .. টিম ওয়ার্কের জন্য হ্যাঁ)।

ব্যাখ্যা

এসপির সাধারণ প্রাইমার (যথারীতি সামান্য পরিবর্তিত):

  • ল্যাবরেথ মূল এবং সহায়ক দুটি স্ট্যাক সহ একটি স্ট্যাক-ভিত্তিক 2D ভাষা। মূল স্ট্যাকের উপর অনেক কিছু ঘটে থাকে তবে আপনি মানগুলি অন্যটির কাছে স্থানান্তর করতে পারেন, উদাহরণস্বরূপ সেগুলি বিপরীত করতে বা পরে সংরক্ষণ করতে পারেন।
  • স্ট্যাকগুলি নিবিড় এবং শূন্যে ভরা, তাই খালি স্ট্যাক থেকে পপিং কোনও ত্রুটি নয়।
  • সম্পাদন প্রথম বৈধ অক্ষর থেকে শুরু হয় (এখানে শীর্ষে বাম)। প্রতিটি সংযোগে, যেখানে নির্দেশিকা পয়েন্টার (আইপি) গ্রহণের জন্য দুটি বা ততোধিক সম্ভাব্য পাথ রয়েছে, সেখানে স্ট্যাকের শীর্ষটি কোথায় পরীক্ষা করা উচিত তা নির্ধারণ করার জন্য পরীক্ষা করা হয়। নেতিবাচক বাম দিকে ঘুরছে, শূন্য এগিয়ে এবং ধনাত্মক ডান দিকে ঘুরছে turn কোডটি উইন্ডিং, টুইস্টি প্যাসেজগুলির মতো দেখানোর উদ্দেশ্যে বোঝানো হয়েছিল , তবে "কক্ষগুলি" তৈরি করতে আপনাকে বিরত করার কিছুই নেই যেখানে প্রতিটি কক্ষে এই শর্তগুলি পরীক্ষা করা হয়। এগুলি বেশ অনাকাঙ্ক্ষিত আচরণ করতে পারে তবে গল্ফ করার পক্ষে দুর্দান্ত।
  • <>^vচক্রাকারে একটি সারি বা কলাম বা গ্রিড পরিবর্তন করে এমনটি ব্যবহার করে উত্স কোড (এবং অতএব গোলকধাঁটির বিন্যাস) পরিবর্তন করা যেতে পারে ।
  • " কোন বিকল্প নেই।

এখানে আমরা যাই।

কোডটি শুরু হয় <, যা লিনিয়ার কোডটির দীর্ঘ অংশের সাথে শুরু করার সময় আমি কয়েকবার ব্যবহার করেছি olf এটি প্রথম সারির উপরের আইপি দিয়ে বক্ররেখরে চক্রাকারে স্থানান্তরিত করে , সুতরাং উত্সটি এর পরে দেখায়:

              <
,,}:?
.
;("   {(={}{".
,",;=};} }) "{@

তবে এখন আইপি কোথাও স্থানান্তর করতে পারে না, তাই এটি <আবার কার্যকর করে। আমরা এই অবস্থায় পৌঁছা পর্যন্ত এটি অব্যাহত থাকে:

    <
,,}:?
.
;("   {(={}{".
,",;=};} }) "{@

এই মুহুর্তে, আইপি সেলটি ছেড়ে দিতে পারে এবং দ্বিতীয় লাইনটি সম্পাদন শুরু করতে পারে ?। সুতরাং এখানে রৈখিক কোডটি ভেঙে দেওয়া হয়েছে:

?   # Read the first integer on STDIN, i.e. N.
:}  # Duplicate it and move one copy over to the auxiliary stack.
,   # Read the separator character.
,.  # Read the first character of the input string and directly print it.

আইপি এখন এই 3x2 ঘরে প্রবেশ করেছে, যা আসলে দুটি শক্তভাবে সংকুচিত (ওভারল্যাপিং) 2x2 ঘড়ির কাঁটার লুপ। প্রথম লুপটি N-1STDIN এর অক্ষরগুলি পড়ে এবং তা বাতিল করে দেয় ।

;   # Discard the top of the stack. On the first iteration, this is the
    # separator we've already read. On subsequent iterations this will be
    # one of the N-1 characters from the input string.
(   # Decrement N. If this hits zero, we leave the loop, otherwise we continue.
,   # Read the next character from STDIN to be discarded.

এখন আমরা দ্বিতীয় লুপটি প্রবেশ করি যা ইনপুট স্ট্রিংয়ের বাকী অংশটি পড়ে। আমরা ইওএফ সনাক্ত করতে পারি কারণ আইপি বামদিকে পরিণত করে সেই ক্ষেত্রে ,ফিরে আসবে -1

,   # Read a character. Exit the loop if EOF.
(   # Decrement it.

এই হ্রাসটি আসলে কার্যকর নয়, তবে আমরা এটি পরে বিনামূল্যে পূর্বাবস্থায় ফিরিয়ে আনতে পারি এবং এখানে এটি দুটি লুপকে ওভারল্যাপ করার অনুমতি দেয়।

যদি আমরা 5 ABCDEFGHIJKLMNOPউদাহরণ হিসাবে ইনপুটটি নিই তবে স্ট্যাকটি দেখতে এমন দেখাচ্ছে:

Main [ ... 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N' 'O' -1  |  5 ... ] Auxiliary

নোট করুন যে এগুলি আসলে ইনপুট অক্ষরের সাথে সামঞ্জস্য করে FGHIJKLMNOP(কারণ আমরা সেগুলি হ্রাস করেছি), এবং আমরা আসলে এর মধ্যে প্রথমটি মুদ্রণ করতে চাই না (আমরা কেবল N-1অক্ষরগুলি ফেলে রেখেছি, তবে এড়িয়ে যেতে চাই N)।

এখন একটি ছোট লিনিয়ার বিট রয়েছে যা পরবর্তী লুপের জন্য স্ট্যাক প্রস্তুত করে:

;   # Discard the -1.
=   # Swap the tops of the stacks, i.e. N with the last character. 
    # By putting the last character on the auxiliary stack, we ensure that
    # it doesn't get discarded in the next loop.
}   # Move N over to the auxiliary stack as well.

স্ট্যাকগুলি এখন দেখতে দেখতে:

Main [ ... 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L' 'M' 'N'  |  5 'O' ... ] Auxiliary

আমরা অন্য 2x2 ঘড়ির কাঁটার লুপটি প্রবেশ করি। এটি Nপ্রধান স্ট্যাক থেকে শীর্ষ বর্ণগুলি বাদ দেয় :

;   # Discard the top of the main stack.
{   # Pull N over from the auxiliary stack.
(   # Decrement it. It it's 0 we leave the loop.
}   # Push N back to the auxiliary stack.

যখন আমরা লুপটি প্রস্থান করি তখন =সেটি 0এবং ইনপুট স্ট্রিংয়ের শেষ অক্ষরটি আবার বদল হয়। এখন স্ট্যাকগুলি দেখতে দেখতে:

Main [ ... 'E' 'F' 'G' 'H' 'I' 'O'  |  ... ] Auxiliary

বাম দিক থেকে আমরা মূল স্ট্যাকের বিষয়বস্তুগুলি (নীচের উপাদানটি বাদ দিয়ে এবং সমস্ত 1 দ্বারা বর্ধিত) মুদ্রণ করতে চাই । এর অর্থ আমাদের এটি সহায়ক সহায়তায় সরিয়ে নেওয়া দরকার। এটি পরবর্তী 2x2 (ঘড়ির কাঁটার দিকের) লুপটি করে:

{   # Pull an element over from the auxiliary stack. This is necessary so we
    # have a 0 on top of the stack when entering the loop, to prevent the IP
    # from turning right immediately.
}   # Move the top of the main stack back to the auxiliary stack. If this was the
    # bottom of the stack, exit the loop.
)   # Increment the current character.
}   # Move it over to the auxiliary stack.

স্ট্যাকস এখন:

Main [ ...  |  'F' 'G' 'H' 'I' 'J' 'P] ... ] Auxiliary

আমরা তাদের মধ্যে প্রথমটি (যা আমরা মুদ্রণ করতে চাই না) তার সাথে মূল স্ট্যাকটিতে ফিরে যাই {। এবং এখন আমরা চূড়ান্ত 2x2 ( ঘড়ির কাঁটার বিপরীতে ) লুপ প্রবেশ করি , যা বাকী অংশগুলি মুদ্রণ করে:

{   # Pull another character over from the auxiliary stack. Exit the loop
    # if that's the zero at the bottom of the stack.
.   # Print the character.

অবশেষে আমরা সাথে প্রোগ্রামটি শেষ করি @


6

জাভাস্ক্রিপ্ট (ES6), 39 বাইট

(s,n)=>s[0]+s.slice(++n,-n)+s.slice(-1)

দেখা যাচ্ছে আমি সবেমাত্র @ Sp3000 এর উত্তরটি নতুন করে দিয়েছি।


6

জেলি, 8 বাইট

Ḣ1¦UðḤ}¡

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

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

Ḣ1¦UðḤ}¡  Main link. Left input: S (string). Right input: N (deletions)

Ḣ         Pop the first element of S.
          This return the element and modifies S.
 1¦       Apply the result to the first index.
          This replaces the first character of the popped S with the popped char.
   U      Upend/reverse the resulting string.
    ð     Convert the preceding chain into a (dyadic) link.
     Ḥ}   Apply double to the right input.
          This yields 2N.
       ¡  Repeat the link 2N times.

5

জেলি , 10 বাইট

Ḣ;ṪjḊṖ$Ɠ¡F

নম্বরটি STDIN এর মাধ্যমে এবং স্ট্রিংটি কমান্ড লাইন আর্গের মাধ্যমে ইনপুট করুন । @ ডেনিসকে প্রচুর ইঙ্গিত দেওয়ার জন্য / এটি কাজ করতে সাহায্য করার জন্য ধন্যবাদ (জেলি এখনও আমাকে উপেক্ষা করে)।

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

Ḣ;Ṫ               Pop first and last chars of string and concatenate
   j              Join by...
       Ɠ¡           Execute n times...
    ḊṖ$               Drop first, drop last of string ($ combines the two monadically)
         F        Flatten to filter out empty lists, since Jelly's j is weird

সৎ প্রশ্ন, 10 বাইট কীভাবে কাজ করবে? এটি কি ইউটিএফ -8 এ নয় (এবং এটি কমপক্ষে 16 বাইট হওয়া উচিত নয় কারণ ḢṪḊṖƓ¡সকলেই 1 বাইটের বেশি ব্যবহার করছেন) বা আপনি পড়ার জন্য কোনও ধরণের অক্ষর কোড টেবিল ব্যবহার করেন?
অটোমেটেড

1
@ অটোমেটেড চাওস দ্য লেটার :): "লিটারে ক্লিক করুন যেখানে" বাইটস "শব্দটি শিরোনামে রয়েছে) জেলি এপিএলের মতো ভাষার মতো একটি কাস্টম কোড পৃষ্ঠা ব্যবহার করে।
Sp3000


4

ভিটসি, 12 9 (কোড) + 1 (ফাংশন ঘোষণার জন্য নতুন লাইন) = 10 বাইট

\ ণ /

সংখ্যাটি অনুসরণ করে স্ট্রিং হিসাবে স্ট্যাকের ইনপুট আশা করে।

2*\[vXvr]
2*         Multiply by 2.
  \[    ]  Do the stuff in the brackets that many times. (input num * 2)
    v      Take the top item off the stack and save it as a local variable.
     X     Remove the top item of the stack.
      v    Push the temporary variable back onto the stack.
       r   Reverse the stack.

যার সাথে আপনি কল করতে পারেন:

'String' r <number> 1m Z
2*\[vXvr]

এটি এমন একটি ফাংশন যা ফলস্বরূপ স্ট্রাকটিকে স্ট্যাকের উপরে ফেলে। আমি এটিকে ট্রাইআইটলাইন লিঙ্কে একটি প্রোগ্রাম হিসাবে সরবরাহ করেছি।

TryItOnline!


@Adnan ফিক্সড - যে স্থানে আমাকে ঘনিষ্ঠ Pyth কাছাকাছি। ডি:
অ্যাডিসন ক্রম্প

তবে এখনও একটি বাইট এগিয়ে: ডি
আদনান

@ আদনান কি আমি এই বলে দূরে সরে যেতে পারি যে এটি ইনপুটের চেয়ে স্ট্যাকের আইটেমগুলি আশা করে? নাকি তা কোনও নো?
অ্যাডিসন ক্র্যাম্প

আমি নীতিটি তার পক্ষে কী তা নিশ্চিত নই তবে আপনি যদি ইতিমধ্যে স্ট্যাকের আইটেমগুলি সম্পর্কে একটি মেটা পোস্ট পেতে পারেন তবে তা ঠিক আছে :)
আদনান

@Adnan সম্পর্কে আইটেম ইতিমধ্যে হচ্ছে একটি মেটা পোস্টে আছে টেপ brainfuck মত ভাষার জন্য। আমি এটি মেটাতে জিজ্ঞাসা করব (কারণ এটি ভিট্টির পক্ষে সত্যই গুরুত্বপূর্ণ:: ডি)
অ্যাডিসন

4

পাইথন 2, 49 48 বাইট

g=lambda s,n:n and g(s[0]+s[2:-2]+s[-1],n-1)or s

টেস্টকেস দিয়ে এখানে চেষ্টা করে দেখুন!

সহজ পুনরাবৃত্তি সমাধান। ইনপুট স্ট্রিং থেকে দ্বিতীয় এবং শেষ দ্বিতীয় উপাদানটি সরিয়ে দেয় এবং এটিকে এবং n-1অবধি নিজেকে কল করে n=0

সম্পাদনা: অন্য অজগর সমাধানের দিকে তাকানো, মূর্খ বোধ করা । অনুমান করুন আমি কেবল পুনরাবৃত্তি খুব পছন্দ করি ...


4

সি, 96 বাইট

i;main(c,v,p)char**v,*p;{i=atoi(v[2])+1;c=strlen(p=v[1]);printf("%c%.*s%s",*p,c-2*i,p+i,p+c-1);}

Ungolfed

i; /* Param 2, the number of chars to remove */

main(c,v,p)char**v,*p;
{
    i=atoi(v[2])+1; /* convert param 2 to integer */
    c=strlen(p=v[1]); /* Length of the input */
    printf("%c%.*s%s",*p, /* Print the first char... */
        c-2*i, /* a number of characters equal to the length minus twice the input... */
        p+i, /* skip the "removed" chars... */
        p+c-1); /* Print the last character of the string */
}

3

রুবি, 29 বাইট

->s,n{s[0]+s[n+1...~n]+s[-1]}

খুব সোজা।

~স্পের উত্তর থেকে চুরি করা কৌশল , যা একটি বাইট ওভার সাশ্রয় করে s[n+1..-2-n]। (এটি কাজ করে কারণ ~nহল -1-ntwo's-পরিপূরক হয়ে, এবং তারপর ...একটি একচেটিয়া পরিসর।)


3

পার্ল, 36 32 + 1 = 33 বাইট

for$i(1..<>){s;\B.(.+).(.);$1$2;}

-pপতাকা প্রয়োজন এবং শেষে দুটি পুনরুক্তি সহ দুটি লাইনে ইনপুট নেয়:

$ perl -pe'for$i(1..<>){s;\B.(.+).(.);$1$2;}' <<< $'ABCDEFGHIJKLMNOP\n4'
AFGHIJKP

Ungolfed?

for $i ( 1..<> ) {
  s;
  \B.(.+).(.);$1$2;x
}

3

সিজেম, 12 বাইট

q~{VW@)t(t}*

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

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

q~            Read and evaluate all input. This pushes S (string) and N (integer).
  {       }*  Do the following N times:
   VW           Push 0 and -1.
     @          Rotate S on top of them.
      )         Pop the last character of S.
       t        Set the item at index -1 to that character.
        (       Pop the first character of S.
         t      Set the item at index 0 to that character.


3

মরিচা, 135 বাইট

ঠিক আছে, এটি বেশ ভয়ঙ্কর দৈর্ঘ্য।

fn f(s:&str,n:usize)->String{let s=s.as_bytes();s[..1].iter().chain(&s[n+1..s.len()-n-1]).chain(s.last()).map(|d|*d as char).collect()}

প্রিটি-প্রিন্ট:

fn f(s: &str, n: usize) -> String {
    let s = s.as_bytes();
    s[..1].iter()
          .chain(&s[n+1..s.len()-n-1])
          .chain(s.last())
          .map(|d| *d as char)
          .collect()
}

আমরা যদি সঠিক স্ট্রিংয়ের পরিবর্তে বাইটস্ট্রিংয়ের অনুমতি দিই তবে আপনি এটিকে 104 বাইটে নামিয়ে আনতে পারেন।

fn f(s:&[u8],n:usize)->Vec<u8>{let mut r=vec![s[0]];r.extend(&s[n+1..s.len()-n-1]);r.extend(s.last());r}

প্রিটি-প্রিন্ট:

fn f(s: &[u8], n: usize) -> Vec<u8> {
    let mut r = vec![s[0]];
    r.extend(&s[n+1..s.len()-n-1]);
    r.extend(s.last());
    r
 }

কেউ যদি আরও ভাল করতে পারে তবে কৌতুহল।


3

এমএসএল - 137 বাইট

c {
%l = $len($1)
return $mid($+($mid($1,2,1),$left($1,1),$right($left($1,-2),-2),$right($1,1),$mid($1,$calc(%l -1),1)),2,$calc(%l -2))
}

ব্যাখ্যা:

%l = $len($1) ইনপুট স্ট্রিংয়ের দৈর্ঘ্য পাবেন এবং এটি l নামক ভেরিয়েবলে সংরক্ষণ করবে

$right(<input>,<length>) এবং $left(<input>,<length> মূল স্ট্রিংয়ের বাম বা ডান বেশিরভাগ অংশ সম্মানজনকভাবে ফিরে আসতে ব্যবহার করা যেতে পারে। $ বামদিক সর্বদা খুব বাম দিক থেকে শুরু পাঠ্য ফেরত দেয় while ডানদিকে সর্বদা ডান দিক থেকে শুরু করে পাঠ্য ফিরে আসে। নির্দিষ্ট দৈর্ঘ্যটি যদি একটি নেতিবাচক সংখ্যা হয় তবে $ বাম এবং $ ডানটি সম্পূর্ণ পাঠ্য বিয়োগ করে যেগুলি স্ব স্ব পক্ষ থেকে অনেকগুলি অক্ষর প্রদান করে।

$mid(<string>,<start>,[length])স্ট্রিংয়ের মাঝামাঝি থেকে সাবস্ট্রিং পেতে ব্যবহৃত হয়। শুরু হ'ল বাম থেকে সাবস্ট্রিংয়ের শুরু। একটি নেতিবাচক মান ডান থেকে একটি সূচনা নির্দেশ করে। উভয় ক্ষেত্রেই, একটি alচ্ছিক দৈর্ঘ্য নির্দিষ্ট করা যেতে পারে। শেষ থেকে অনেকগুলি অক্ষর অপসারণ করতে একটি নেতিবাচক দৈর্ঘ্য ব্যবহার করা যেতে পারে। সুতরাং আমি এটি ইনপুট স্ট্রিংয়ের দৈর্ঘ্য ব্যবহার করে দ্বিতীয় অক্ষর এবং দ্বিতীয় শেষ অক্ষরটি পুনরুদ্ধার করতে ব্যবহার করেছি।

$calc(<input>) গাণিতিক গণনা সম্পাদন করতে ব্যবহৃত হয়


1
পিপিসিজিতে আপনাকে স্বাগতম! কিছু মন্তব্য এবং আপনার কোডের ব্যাখ্যা ব্যাখ্যা করা সাধারণত একটি ভাল ধারণা।
জাচ গেটস

@ জ্যাচগেটস ধন্যবাদ! পরের বারের জন্য এটি মনে রাখবেন!
ডেনি

2

এখনও শিরোনামহীন ভাষা হিসাবে (তাই নতুন অ-প্রতিযোগিতামূলক), 9 বাইট

hD_RQ:Q|J

আপনি উত্স কোড খুঁজে পেতে পারেন এখানে , ভাষা সম্পূর্ণ অস্থিতিশীল (এটির জন্য প্রথম পরীক্ষার চ্যালেঞ্জ) সুতরাং ভবিষ্যতে এটি কাজ করার আশা করবেন না (প্রতিশ্রুতি 7)

এটি স্ট্যাক ভিত্তিক ভাষা যা ফাংশনগুলি স্ট্যাক থেকে বস্তুগুলি যুক্ত করে এবং সরিয়ে দেয়। বর্তমানে 2 টি স্ট্যাক ম্যানিপুলেশন কমান্ড রয়েছে:D ( উপরে শীর্ষে নকল করুন) এবংR (স্ট্যাকের উপরের এন আইটেমগুলি ঘোরান)

ব্যাখ্যা:

          - autoassign Q = eval_or_not(input()) (string)
h         - imp_eval_input()+1
 D        - duplicate(^)
  _       - neg(^)
   R      - rotate(^)
    Q:    - Q[^:^]
      Q|  - Q[0], Q[-1]
        J - "".join(all)

2

সিজেম, 14 বাইট

l(o)\l~_W*@<>o

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

l   e# Read the input string.
(o  e# Pull off the first character and print it.
)\  e# Pull off the last character and swap with the rest of the string.
l~  e# Read the second line of the input and evaluate it (N).
_   e# Duplicate.
W*  e# Multiply by -1 to get -N.
@   e# Pull up the string.
<   e# Discard the last N characters.
>   e# Discard the first N characters.
o   e# Output what's left. The last character of the input is now still on the
    e# stack and is automatically printed at the end of the program.

2

Vim, 27 বাইট

o0lxehx <ESC>"ay0ddA@a<ESC>B"bdWx@b

ইনপুটটি ফর্মে থাকবে বলে আশা করা হচ্ছে STRING Nপ্রথম লাইনে অন্য কোনও অক্ষর ছাড়াই থাকবে ।

ব্যাখ্যা:

#Write a macro to do one round of the swap and delete and save to register a
o0lxehx <ESC>"ay0dd

#Append register a to N and save in register B so it will run @a N times.
A@a<ESC>B"bdWx

# Actually run the macro
@b

2

ব্রেইনফাক, 130 বাইট

আমার প্রথম পিপিসিজি প্রবেশ!

অবশ্যই জিততে হবে না তবে ওহে

ইনপুট নেয় যেমন: 4ABCDEFGHIJKL, প্রথম চরিত্রটি এন এর সাথে

,>+++++++[<------->-]<+>>+[>,]<[<]>-<<[>>>[<+>-]>[<+>-]<<[>>+<<-]>[>]<[>+<-]<[>+<-]>>[<<+>>-]<[-]<[<]>[-]>[[<+>-]>]<<[<]<<-]>>>[.>]

এটি এই দুর্দান্ত সাইটে পরীক্ষা করুন।

9 এর চেয়ে কম বা সমান এন-তে সীমাবদ্ধ, কারণ দুই-অঙ্কের সংখ্যাগুলি বাটের ব্যথা।

সম্পাদনা: আমি এটিকে চুষে ফেলেছি এবং দুই-সংখ্যার জন্য সমর্থন যোগ করেছি। একক অঙ্কের জন্য শূন্যের সাথে প্যাড।

,>+++++++[<------->-]<+ [>++++++++++<-]>[<+>-],>+++++++[<------->-]<+ [<+>-]>+[>,]<[<]>-<<[>>>[<+>-]>[<+>-]<<[>>+<<-]>[>]<[>+<-]<[>+<-]>>[<<+>>-]<[-]<[<]>[-]>[[<+>-]>]<<[<]<<-]>>>[.>]

পিপিসিজিতে আপনাকে স্বাগতম! এটি একটি খুব সুন্দর প্রথম উত্তর! :)
আদনান

@ এবং ধন্যবাদ! আমি একটি চ্যালেঞ্জের জন্য কিছুক্ষণ খুঁজছিলাম যা বিএফ-এ যুক্তিসঙ্গতভাবে সমাধান করা যেতে পারে, যা আমার নতুন পছন্দের একটি ভাষা: ডি
ভ্যাসিলেস্কুর

2

পার্ল, 27 বাইট

এর জন্য +1 অন্তর্ভুক্ত করুন -p

হিসাবে চালান perl -p sdr.pl

STDIN এ দেওয়া ইনপুট, প্রথম রেখার স্ট্রিং, দ্বিতীয় লাইনের গণনা ধরে স্ট্রিংটিতে কেবল "শব্দ" অক্ষর রয়েছে

sdr.pl:

eval's%\B.(.*).\B%$1%;'x<>

1

পিএইচপি, 60 বাইট

এই সমাধানটি পুনরাবৃত্তভাবে ইনপুট স্ট্রিং থেকে সূচক অনুসারে একটি খালি স্ট্রিংতে অক্ষর সেট করে। লম্বা প্রতিরোধের জন্য আমি সরাসরি ইনপুট স্ট্রিংটি চালাচ্ছি return

function(&$w,$i){for(;$i;)$w[$i--]=$w[strlen($w)-$i-2]="";};

মূলত মেমরির ক্ষেত্রে $wএটির মতো দেখতে:

Addr 0 1 2 3 4
     H   l   o
     ^   ^   ^
>Result: Hlo

এভাবে চালান:

php -r '$f = function(&$w,$i){for(;$i;)$w[$i--]=$w[strlen($w)-$i-2]="";}; $f($argv[1],$argv[2]);echo"$argv[1]\n";' Hello 1

পিএইচপি 4.1 (50 বাইট): <?for(;$I;)$W[$I--]=$W[strlen($W)-$I-2]="";echo$W;। এটি কীগুলিতে Wএবং Iপোষ্ট / জিইটি / কুকির উপরের মানগুলি প্রত্যাশা করে ... উদাহরণটি হ'লhttp://example.com/a.php?W=MyString&I=5
ইসমাইল মিগুয়েল

1
হ্যাঁ, আমি উত্তরগুলি register globalsআর চাই না যার প্রয়োজন নেই। পরামর্শ যদিও :) জন্য ধন্যবা
aross

1

পাইলন , 16 বাইট।

i:At,{\,v\,v,A}c

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

i    # Get command line input.
:At  # Set A equal to the top of the stack.
,    # Pop the stack.
{    # Start a for loop.
 \   # Swap the top two elements of the stack.
  ,  # Pop the stack.
   v # Reverse the stack.
 \   # Swap the top two elements of the stack.
  ,  # Pop the stack.
   v # Reverse the stack.
 ,   # Switch to loop iterations.
 A   # Iterate A times.
}    # End the for loop.
c    # Print the stack as a string


1

জल्फ, 13 বাইট

ΆFi liγhj_γgi

জাভাস্ক্রিপ্ট উত্তরের একটি ট্র্যানপিলেশন।

ব্যাখ্যা:

ΆFi liγhj_γgi
Ά             ternary add
 Fi            i[0],
   `li         i sliced
      γhj       γ = j + 1
         _γ     to -γ
           gi  and the last of i

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

প্রশ্নোত্তর পরবর্তী আরও একটি সংস্করণ:

 ΆFi]ihjYgi

1

সিরিয়াসলি, 17 বাইট

,#,`p@pXod@dXq`nΣ

হিসাবে ইনপুট লাগে s \n n

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

ব্যাখ্যা:

,#,`p@pXod@dXq`nΣ
,#                 push a list of characters in s
  ,`          `n   do the following n times:
    p@pXo          pop 2 characters off the front, discard the second, put the first back
         d@dXq     pop 2 characters off the back, discard the second, put the first back
                Σ  join

1

সি #, 129 বাইট

যেহেতু আমরা মূলত 1 এড়িয়ে যায় এবং এন এবং বিপরীত দৃশ্যগুলি সরিয়ে ফেলি

string o(string i,int n){var s=i.ToList();int x=0;while(x<2){s.RemoveRange(1,n);s.Reverse();x++;}return new string(s.ToArray());}

ungolfed

string o(string i, int n)
{
    var s = i.ToList();
    int x = 0;
    while (x < 2) //Repeat the following twice
    {
        s.RemoveRange(1, n); //remove n at index 1
        s.Reverse(); //Reverse the list
        x++;
    }
    return new string(s.ToArray());
}

লুপিংয়ের জন্য এটি ব্যবহার করে স্ক্রিপ্টটির দৈর্ঘ্য হ্রাস করা সম্ভব হবে: (int x = 0xi <2; i++)
t-clausen.dk

1

জাভা, 144 বাইট

static String y(int i,String s){return i==0?s:y(i-1,new StringBuffer(s).replace(1,2,"").replace(s.length()-3,s.length()-2,"").toString());}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.