রোসক্র্যান্টজ এবং গিল্ডেনস্টার কোড


10

রোজারক্র্যান্টজ এবং গিল্ডেনস্টার ডেড হলেন এই অবাধ্যবাদী নাটকে , দুটি মূল চরিত্র রোজক্র্যান্টজ এবং গিলডেনস্টেন (বা তারা?) সর্বদা তাদের মধ্যে কে বা sometimes বা তাদের নিজের অঙ্গগুলির মধ্যে কোনটি always সবসময় মিশে থাকে are কারণ অনুধাবনের অভাবের কারণে স্বতন্ত্র পরিচয় তারা এমনকি তাদের নাম ঘিরে যদি এটি অযৌক্তিক হবে না?

আপনার টাস্ক এটি একটি ফাংশন যা একটি স্ট্রিং লাগে লিখতে এমনকি দৈর্ঘ্য (এবং নকশা দ্বারা, 4-এর গুণিতক) যে চেয়ে বড় 7 টি অক্ষর, এটা বিভক্ত, এবং এটি এলোমেলো।

বিভাজকটি নিম্নরূপ হবে : স্ট্রিংটি বিন্যাসে হবে, সেগুলি "abscd"পৃথককারী চরিত্র হিসাবে অভিনয় করবে। প্রথম বিভাগ এবং বিভাজক, absস্ট্রিংয়ের প্রথম অর্ধেক হবে, যেখানে দ্বিতীয় অর্ধেক হবেcd

দৈর্ঘ্য aহবে(string length / 4) - 1

দৈর্ঘ্য bহবে(string length / 4)

দৈর্ঘ্য sহবে1

দৈর্ঘ্য cহবে(string length / 4) + 1

দৈর্ঘ্য dহবে(string length / 4) - 1

এটি সত্যিই বিভ্রান্তিকর হতে পারে, সুতরাং আমি আপনাকে কয়েকটি উদাহরণ দিয়ে দেখাব

("a" + "bb" + "s" + "ccc" + "d").length //8
  1     2      1      3      1
|-------4--------|  |----4-----| <--- (4 is half of 8)

("rosen" + "crantz" + "&" + "guilden" + "stern").length  //24
    5         6        1        7          5

("foo" + "barr" + "?" + "barry" + "foo").length
   3       4       1      5         3

অবশেষে:

তারপরে আপনি চারপাশের অংশগুলি আউটপুটগুলি বদলে ফেলুন adscb

প্রাক্তন। "rosencrantz&guildenstern" --> "rosenstern&guildencrantz"

"foobarr?barryfoo" --> "foofoo?barrybarr"

Rulez:

  1. স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ
  2. গ্রহণযোগ্য উত্তর: একটি ফাংশন যা একটি ইনপুট স্ট্রিংয়ের মাধ্যমে ইনপুট নেয় এবং একটি আউটপুট স্ট্রিং দেয়
  3. যদি ইনপুট স্ট্রিং উপরোক্ত সরবরাহিত প্রয়োজনীয়তার সাথে মেলে না, তবে আপনার কোডটি ত্রুটিযুক্ত হওয়া উচিত (কী ধরণের Exceptionবা এটি বিবেচনা করে না Error)
  4. এটি code-golfতাই সংক্ষিপ্ত (বৈধ) উত্তর (প্রতিটি ভাষায়) জিতেছে!
  5. ওয়ান-লাইনারের জন্য বোনাস পয়েন্ট :-) (আসলেই নয়, কেবল দুর্দান্ত পয়েন্টগুলি)

6
আপনার গ্যাংস্টা রুলজ সম্পর্কে: সাধারণত "ফাংশনগুলি" সমর্থন করা নিরুৎসাহিত করা হয় , কারণ তারা সাধারণভাবে সংজ্ঞা দিতে পারে না। তদতিরিক্ত, অবৈধ ইনপুট পরিচালনা করাও বেশিরভাগ ক্ষেত্রে এড়ানো হয়, কারণ এটি সাধারণত বিরক্তিকর বয়লার-প্লেট কোডে সিদ্ধ হয়।
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ আমি মনে করি ইনপুট বৈধকরণের চ্যালেঞ্জ একটি আকর্ষণীয় সমস্যা, কারণ এটি অ্যারে ট্র্যাভারসাল, ব্রাঞ্চিং লজিক, রেজিএক্স পরীক্ষার বিভিন্ন উপায় পরিচালনা করা যেতে পারে, সুতরাং এগুলির অপ্টিমাইজেশন অতিরিক্ত চ্যালেঞ্জকে যুক্ত করতে পারে ¯_ (ツ) _ / ¯ আমি চেষ্টা করব অন্য কোড গল্ফ চ্যালেঞ্জের জন্য যদিও :-)
মাইকেল

2
tfw প্রত্যেকে তাদের প্রিয় গল্ফিং ল্যাং-এ কোডটি তৈরি করতে আরও নমনীয় আইও পদ্ধতিগুলি পাওয়ার চেষ্টা করছে। এবং tfw এটি প্রায় সব প্রশ্নের উপরই ঘটে
উইন্ডমিল কুকিজ


1
@ নাথানমরিল এটি অনুমানে উল্লেখ করেছেন যে ইনপুট দৈর্ঘ্যে characters অক্ষরের বেশি হতে হবে এবং এর দৈর্ঘ্যটি চারটি দ্বারা বিভাজ্য হতে হবে, জো কিং এ জাতীয় "
এবিসিডি

উত্তর:


11

কে (ওকে) , 35 34 33 বাইট

{$[8>#x;.;<x!4!-&4#-1 0 2+-4!#x]}

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

ইনপুট বৈধতা ছাড়াই (এনজিএন এর অনুগ্রহের জন্য), 25 24 23 বাইট

{<x!4!-&4#-1 0 2+-4!#x}

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

দ্রুত K কে কিছুটা শিখেছি এবং ক্রিয়াগুলির তালিকার দিকে তাকিয়ে আমি ভেবেছিলাম যে বিকল্প বিকল্প ( কাটা ব্যবহার না করে) এখানে কাজ করতে পারে। এবং এটি পুরোপুরি কাজ করেছে।

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

{<x!4!-&4#-1 0 2+-4!#x}
                 -4!#x    Length divided by four (floor division)
        4#-1 0 2+         Generate lengths (x/4-1, x/4, x/4+2, x/4-1)
       &                  Generate that many 0, 1, 2, 3's
    4!-                   Negate and modulo 4; effectively swap 1 and 3
 <x!                      Sort the original string by above

{$[8>#x;.; <code> ]}  Input validation
 $[8>#x           ]   If the length is less than 8
        .             Dynamically generate an error
           <code>     Otherwise, run the main code

@ngn আমার চোখ ওও কী হল
Bubbler

3

পার্ল 6 , 60 58 বাইট

-2 বাইট জো কিংকে ধন্যবাদ জানায়

{[~] .rotor($_/4 X-1,0,+^-$_+>2,-1,1)[0,4,2,3,1;*]}o*.comb

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

ত্রুটির ক্ষেত্রে "রোটারাইজিং সাবলিস্টের দৈর্ঘ্য সীমার বাইরে" ফেলে দেয়।

ব্যাখ্যা

{               # Anonymous block
 [~]            # Join
   .rotor(      # Split into sublists of specific length
     $_/4 X-    # Subtract from len/4
     1,
     0,
     +^-$_+>2,  # (len-1)>>2
                #   subtraction yields 1 if len is multiple of 4
                #   otherwise a value less than 1 causing an error
     -1,       
     1)
   [0,4,2,3,1;*]  # Rearrange sublists and take inner elements
}o*.comb          # Split into characters and feed into block

3

জে , 36 35 বাইট

5;@A.](<;.2~;)1<@{."+~1 0 _2 1-4%~#

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

{.+1 নেতিবাচক দৈর্ঘ্যের দ্বারা বাইট &;.2 এটি পরিবর্তে "সমাপ্তি" চিহ্নিতকারী হিসাবে কেটে দেয়।

আসল উত্তর, 36 বাইট

5;@A.](<;.1~;)1<@{."+~_1 0 2 _1+4%~#

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

ngn পূর্ববর্তী কে উত্তরের মন্তব্যে "কাটা" উল্লেখ করেছে এবং এটি আমাকে জে চেষ্টা করেছিল যা একই "কাটা" আছে (কে কীভাবে কাজ করে তা আমার কোনও ধারণা নেই)।

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

5;@A.](<;.1~;)1<@{."+~_1 0 2 _1+4%~#  Monadic train.
                                4%~#  Length divided by four
                      _1 0 2 _1+      Generate the four segment lengths
              1<@{."+~  Generate [1 0 0...] boxed arrays of those lengths
      (     ;)          Raze; unbox and concatenate
     ] <;.1~            Cut the input string on ones as starting marker, then box each
5  A.  Rearrange the boxes in the order 0 3 2 1
 ;@    Raze again

মনে রাখবেন যে এই ফাংশনটি স্বয়ংক্রিয়ভাবে অবৈধ ইনপুটগুলি পরিচালনা করে:

  • যদি ইনপুট দৈর্ঘ্য চারটির একাধিক না হয় তবে {.ছোঁড়েdomain error যেহেতু তার দৈর্ঘ্য যুক্তি পূর্ণসংখ্যার হতে হয়েছে।
  • যদি ইনপুট দৈর্ঘ্য 4 হয় তবে কাটাটি কেবলমাত্র দুটি বিভাগ তৈরি করে এবং 5 A.ছুঁড়ে দেয় index error
  • যদি ইনপুট দৈর্ঘ্য 0 হয় তবে দুটি কাটা কাটা আর্গুমেন্টের একই দৈর্ঘ্য নেই, তাই length errorনিক্ষেপ করা হয়।

3

পাইথন 3 , 103 102 101 97 88 86 84 বাইট

def f(s):l=len(s);l//=4*(l%4<1<l/4);return s[:l-1]+s[1-l:]+s[2*l-1:1-l]+s[l-1:2*l-1]

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

আসলেই ওয়ান-লাইনার নয়, তবে ; লাইনব্রেক ও ইনডেন্টের চেয়ে লাইন প্রতি একটি কম বাইট।

ZeroDivisionErrorইনপুট স্ট্রিংয়ের দৈর্ঘ্য 8 এর চেয়ে কম বা 4 এর পূর্ণসংখ্য একাধিক না হলে ছোঁড়ে ।

পাইথন 2 এও কাজ করে।

-4 বাইট জো কিংকে ধন্যবাদ

-9 বাইট ovs ধন্যবাদ

-2 বাইটস জোনাথন ফ্রেচকে ধন্যবাদ

-২ বাইটস বুবলারকে ধন্যবাদ


টিপসের জন্য ধন্যবাদ @JoKing, অনেক প্রশংসা :)
Axim


@ খুব কাছের সূচকগুলিতে খুব ভাল লেগেছে, প্যারেন হিসাবে, আমি তাদের মধ্যে কিছু থেকে মুক্তি পেতে পারি কিনা তা দেখার জন্য আমি কমপক্ষে 20 মিনিটের জন্য চেষ্টা করেছিলাম, তবে আমি পুরোপুরি মিস করেছি যে //=বাহ্যতমতম জোড়ার পরিবর্তনটি অপ্রয়োজনীয় হয়ে উঠেছে। একটি গুচ্ছ ধন্যবাদ!
অ্যাক্সিম


1
দুটি অসম্পূর্ণতা 84 বাইটে পেতে মার্জ করুন ।
বুদ্বুদ

2

পার্ল 6 , 78 বাইট

*.comb[0..*/4-2,3* */4+1..*,*/2-1/(*>7)..3* */4,*/4-1/(*%%4)..*/2-2].flat.join

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

নামবিহীন কোড ব্লক যা একটি স্ট্রিং নেয় এবং পরিবর্তিত স্ট্রিংটি বৈধ হলে ফিরিয়ে দেয়, অন্যথায় শূন্য ত্রুটির দ্বারা একটি বিভাগ প্রদান করে। আমি জানি যে আমি সরাসরি একটি অ্যারে সংশোধন করতে পারি, তাই আমি স্ট্রিংয়ের দুটি বিভাগটি অদলবদল করতে পারি, তবে আমি এটি পুরোপুরি বের করতে পারি না।


2

কে (এনএনজি / কে) , 120 113 103 99 95 বাইট

{$[(r>7)&0=4!r:#:x;{g:(s:*|(y*2)#x)\x;((y-1)#*g),((-y-1)#*|g),s,((y+1)#*|g),(-y)#*g}[x;r%4];l]}

আশাকরি আরও গোল হয়ে যেতে পারে, স্ট্রিংয়ের দৈর্ঘ্য চারটি দিয়ে বিভাজ্য হলে পরীক্ষার জন্য একটি অতিরিক্ত ফাংশন অন্তর্ভুক্ত করা হয়, ইনপুট অবৈধ হলে অঘোষিত ভেরিয়েবলের উল্লেখ সহ আউটপুট ত্রুটি

সম্পাদনা: 7 টিরও বেশি দৈর্ঘ্যের মিসড শর্তটি অন্তর্ভুক্ত

সম্পাদনা: একটি ফাংশনে একত্রিত, অপ্রয়োজনীয় ভেরিয়েবল ঘোষণাগুলি সরানো হয়েছে

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


1
এটি অনেক খাটো হতে পারে। আপনি "কাটা" ( indices_string) সম্পর্কে জানেন ? বাগানের মধ্যে আমাকে পিং করুন যদি আমার এটির ব্যাখ্যা দেওয়া হয়
ngn

1
আমি 34 বাইটে এটি করতে পারি :)
এনজিএন

আমি কাটা সম্পর্কে জানি, কিন্তু আমি এটি ব্যবহার করার কথা ভাবি নি ... 34 বাইট ?! আমি বাড়ি ফিরে এলে আরও একবার যেতে যাব এবং দেখি যে আমি কাছে এসেছি কিনা
থাইফেকি

আমার উল্লেখ করা উচিত: আমার সমাধানটি নিশ্চিত করে না যে অবৈধ ইনপুটগুলি (দৈর্ঘ্য <= 7) কোনও ত্রুটির সৃষ্টি করে
ngn

1

রেটিনা 0.8.2 , 58 বা 73 বা 83 বা 93 বাইট

((((.)))*?)(.(?<-2>.)+)(...(?<-3>.)+)((?<-4>.)+)$
$1$7$6$5

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

((((.)))*?)

ক্যাপচার aমধ্যে $1, এবং সম্ভব ছোট যেমন করা *?$#2, $#3এবং $#4দৈর্ঘ্য হিসাবে শেষ a

(.(?<-2>.)+)

ক্যাপচার bমধ্যে $4(?<-2>.)+দৈর্ঘ্য পর্যন্ত যেমনটি a, যখন অন্যান্য .তার দৈর্ঘ্য 1 যোগ করে প্রয়োজনীয়।

(...(?<-3>.)+)

ক্যাপচার sএবং cভিতরে $6। তাদের সম্মিলিত দৈর্ঘ্য দৈর্ঘ্যের চেয়ে তিনটি বেশি a

((?<-4>.)+)

ক্যাপচার dমধ্যে $7। এর দৈর্ঘ্য দৈর্ঘ্যের চেয়ে বেশি নয় a

$

আমরা aযতটা সম্ভব সংক্ষিপ্ত করেছি , তবে আমরা এখনও ইনপুটটির শেষে পৌঁছতে চাই।

$1$7$6$5

এক্সচেঞ্জ bএবং d

উপরের পর্যায়ে এর ইনপুটটি বৈধতা দেয় না। রেটিনার কোনও রান-টাইম ত্রুটি না থাকায় ইনপুট বৈধতার জন্য বেশ কয়েকটি বিকল্প রয়েছে:

G`^(....){2,}$

দৈর্ঘ্য 8 এর চেয়ে কম বা 4 এর একাধিক না হলে আউটপুট দেয় না (+15 বাইট)

^(?!(....){2,}$).*
Error

Errorদৈর্ঘ্য 8 এর চেয়ে কম বা 4 এর একাধিক না হলে আউটপুটগুলি (+25 বাইট)

+`^(....)*..?.?$|^(....)?$
.....$1

দৈর্ঘ্য 8 এর চেয়ে কম বা 4 এর একাধিক না হলে স্তব্ধ হয় (+35 বাইট)


এটি অবৈধ ইনপুটগুলিতে কোনও ত্রুটি ফেলবে না (যেমনটি বিরক্তিকর)
জো কিং

1

সি (জিসিসি) সঙ্গে -Dx=memcpyএবং -DL=(l-1), 154 158 160 বাইট

যদি ইনপুট স্ট্রিংয়ের দৈর্ঘ্য 4 দ্বারা বিভাজ্য না হয় বা 8 টির চেয়ে কম হয় N

পরামর্শের জন্য রোজেম এবং জোনাথন ফ্রেঞ্চকে ধন্যবাদ।

সম্পাদনা: মুভড প্রিপ্রোসেসর কমান্ড লাইনে সংজ্ঞা দেয় এবং ধাঁধাটি কঠোরভাবে মেনে চলার জন্য স্ট্রিংটিকে গতিশীল-বরাদ্দ করে তোলে।

f(s,t,l)char*s,*t;{l=strlen(s);l%4|l<8?t=0:(t=malloc(l+1),l/=4,x(t,s,L),x(t+L,s+3*l+1,L),x(t+2*L,s+L+l,l+2),x(t+3*l,s+L,l),t[4*l]=0);l=t;}//-Dx=memcpy -DL=(l-1)

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


কেন t[80]? ইনপুট দৈর্ঘ্যের বিষয়ে কোনও উচ্চ আবদ্ধ বলে মনে হচ্ছে না।
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ আমি বাইটস সংরক্ষণ করার জন্য এটি করেছি তবে আপনি সঠিক। পরিবর্তে আমি ব্যবহারের সমাধান পরিবর্তন করেছি malloc()
এরিকএফ

সংশোধন করে রিটার্ন দেয়, রিটার্ন মানটি NULLঅবৈধ আউটপুটের জন্য হয় memcpy(), থেকে ফিরতি মানগুলি ব্যবহার করে, প্রকারগুলি এড়াতে ফাংশনের মতো ম্যাক্রো এবং এড়ানোর জন্য C99 ভেরিয়েবল-দৈর্ঘ্যের অ্যারেগুলি malloc()

কেন 160 বাইট, আপনি গণনা //বা না -w?
l4m2

@ l4m2 -wহ'ল সতর্কতা দমন করার সুবিধা (যাতে ত্রুটিগুলি খুঁজে পাওয়া সহজ)। //টিআইও আমার জন্য তাদের বাইটগুলি গণনা করার পরে আমি সাধারণত কমান্ড লাইন যুক্তি যুক্ত করি এবং তারপরে প্রয়োজনীয় অতিরিক্ত অতিরিক্ত একটি চরিত্রের জন্য অ্যাকাউন্ট থেকে মোট 1 টি কেটে রাখি।

1

জেলি , 28 বাইট

L7»4ḍİ×L:4;;ĖÄƲFÄœṖ⁸⁽%[D¤ị$F

(যদি একটি পূর্ণ প্রোগ্রামের অনুমতি দেওয়া হয় তবে আমরা চলার স্থানটি সরিয়ে ফেলতে পারি F)
যদি দৈর্ঘ্য 8 এর কম হয় বা চারটি দ্বারা বিভাজ্য না ValueErrorহয় inf(একটি ফ্লোট) এর পূর্ণসংখ্যা বিভাগের সময় উত্থাপিত হয় 4- বিভাগের ফলন হয় NaN(এছাড়াও একটি ভাসা) যা তখন সম্ভব না একটি কাস্ট করা int

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

কিভাবে?

L7»4ḍİ×L:4;;ĖÄƲFÄœṖ⁸⁽%[D¤ị$F - Link: list of characters
L                            - length
 7                           - literal seven
  »                          - maximum (of length & 7)
   4ḍ                        - divisible by four? (yields 1 for good inputs; 0 otherwise)
     İ                       - inverse (1 yields 1; 0 yields inf)
      ×L                     - multiply by length (length or inf)
        :4                   - integer divide by 4 (errors given inf)
              Ʋ              - last four links as a monad (f(x)):
          ;                  -   concatenate -> [x,x]
            Ė                -   enumerate -> [1,x]
           ;                 -   concatenate -> [x,x,[1,x]]
             Ä               -   cumulative sum (vectorises at depth 1) -> [x,x,[1,1+x]]
               F             - flatten -> [x,x,1,1+x]
                Ä            - cumulative sum -> [x,2x,2x+1,3x+2]
                   ⁸         - chain's left argument (the input)
                 œṖ          - partition at indices (chops up as per requirements)
                          $  - last two links as a monad (f(z)):
                        ¤    -   nilad followed by link(s) as a nilad:
                    ⁽%[      -     10342
                       D     -     decimal digits -> [1,0,3,4,2]
                         ị   -   index into z (rearranges the pieces as per requirements)
                           F - flatten (back to a list of characters)




1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 80 বাইট

s=>(g=s.substr.bind(s))(0,l=s.length/4-1)+g(-l)+g(l-~l,l+3)+g(l,l+1,l<1==l%1||Z)

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

জাভাস্ক্রিপ্ট (নোড.জেএস) , 84 বাইট

s=>(g=(a,b)=>s.substr(a,b))(0,l=s.length/4-1)+g(-l)+g(l-~l,l+3)+g(l,l+1,l<1==l%1||Z)

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

জাভাস্ক্রিপ্ট (নোড.জেএস) , 87 বাইট

s=>(l=s.length/4)<2||l%1?Z:(g=(a,b)=>s.substr(a,b))(0,l-1)+g(1-l)+g(l+l-1,l+2)+g(l-1,l)

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

রেজিপ্লেক্সের চেয়ে কম


0

জাভা 8, 135 বাইট

s->{int l=s.length();l=l>7&l%4<1?l/4:l/0;return s.substring(0,l-1)+s.substring(3*l+1)+s.substring(2*l-1,3*l+1)+s.substring(l-1,2*l-1);}

ArithmeticExceptionযদি ইনপুট স্ট্রিং প্রয়োজনীয়তার সাথে মেলে না তবে (শূন্য দ্বারা বিভাজন) নিক্ষেপ করবে । এটি এখানে অনলাইনে চেষ্টা করুন

Ungolfed:

s -> { // lambda function taking a String argument and returning a String
    int l = s.length(); // take the length of the input ...
    l = l > 7 &         // ... if it's  greater than 7 and ...
        l % 4 < 1       // ... a multiple of 4 ...
      ? l / 4           // ... divide by 4; otherwise ...
      : l / 0;          // ... error out (division by zero throws ArithmeticException)
    return // concatenate and return:
           s.substring(0, l - 1)             // a
         + s.substring(3 * l + 1)            // d
         + s.substring(2 * l - 1, 3 * l + 1) // sc
         + s.substring(l - 1, 2 * l - 1);    // b
}

সুপারিশ l/=l>7&l%4<1?4:0;পরিবর্তেl=l>7&l%4<1?l/4:l/0;
ceilingcat

0

সি (জিসিসি) , 129 বাইট

পরিবর্তন করে ফিরে আসে। এর সাথে সংকলন:

-Df(s)=({char t[l=strlen(s)];l%4|l<8?0:(l/=4,x(t,s+l*2-1,l-~l),x(x(x(s+l*3,s+l-1,l)-l-2,t,l+2)-l+1,t+l+2,l-1),s);}) -Dx=memcpy

উত্স ফাইল:

l;

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

Degolf

-Df(s)=({ // Function-like macro f. Takes a char* as a parameter.
          // Return value is a pointer to s if successful, and to NULL if string was invalid.
     char t[l=strlen(s)]; // Allocate a local temp string.
     l%4|l<8?0: // Detect invalid strings. Return 0 (NULL) on invalid string.
         (l/=4, // We're only really concerned with floor(len/4), and this will yield that.
             memcpy(t,s+l*2-1,l-~l), // Copy the second half of chars to the temp storage.
             memcpy( // Because memcpy returns the address of the destination, we can chain
                     // the calls to save quite a few bytes, even after x->memcpy substitution.
                 memcpy(memcpy(s+l*3,s+l-1,l) // Next, copy the second quarter to the end.
                     -l-2,t,l+2) // After that, we copy back the third quarter to its place.
                          -l+1,t+l+2,l-1) // Finally, copy the fourth quarter to where the second
                                          // quarter was.
                      ,s);}) // And return the pointer.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.