মোচড়ের বাক্যগুলি


17

বিধি

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

12345 678 9 -> 15243 687 9।

এটি প্রথমে এবং স্ট্রিংয়ের সর্বশেষতম শব্দটির মধ্যে একটি বিকল্প ফ্যাশনে শব্দটিকে পুনরায় সাজিয়ে তুলবে।

15243 687 9 -> 15243 9 687

পরিশেষে, এটি ফলাফলগুলি আউটপুট দেওয়ার আগে প্রাথমিকভাবে যেখানে সূচকগুলিতে অবস্থিত সেখানে ফাঁকা স্থান, ট্যাবগুলি এবং নিউলাইনগুলি রেখে স্ট্রিংটির পুনর্গঠন করবে।

12345 678 9-> 15243 687 9 -> 15243 9 687 -> 15243 968 7

আউটপুট ইনপুট হিসাবে একই ডেটাটাইপ হওয়া উচিত।

স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ

উদাহরণ

ইনপুট:
দ্রুত ব্রাউন শিয়ালটি অলস কুকুরটির উপরে লাফিয়ে।
আউটপুট:
তেহ d.ogq কুচিল ইয়াজ ব্ন্রো তেহফ xoo রাভেজ সুপম

ইনপুট:
দ্রুত ব্রাউন শিয়ালটি
অলস কুকুরটির উপরে লাফিয়ে ।
আউটপুট:
তেহ d.ogq কুচিল ইয়াজ
ব্ন্রো তেহফ xoo রাভেজ সুপম

ইনপুট:
আফলাক
আউটপুট:
আকফকলা

এটি তাই সংক্ষিপ্ততম কোডের জয়


6
এটি একটি সদৃশ মত অনুভূত। আমি শপথ করছি আমি এটি আগে দেখেছি।
— অ্যাডিসন ক্রম্প

সুতরাং শুধুমাত্র ট্যাব, স্পেস এবং নিউলাইন অক্ষরগুলিকে কোনও শব্দের অংশ হিসাবে বিবেচনা করা হয় না?
— জোনাথন অ্যালান


আমরা কি ASCII ধরে নিতে পারি? নাকি ইউনিকোড?
— মেয়রমন্টি

@ মায়োরমন্টি আপনি ধরে নিতে পারেন চরিত্রগুলি যে কোনও আকারেরই এটি আপনার পক্ষে এত সহজ করে তোলে যতক্ষণ না এটি স্পেসগুলি যথাযথভাবে আচরণ করে।
— fəˈnɛtɪk

উত্তর:


3

জেলি , 15 14  8 বাইট

একটি খুব বড় থেকে 6 বাইট সংরক্ষণ ডেনিস (চেপ্টা এবং লিঙ্ক 1 ভিতরে ছাঁচ চলন্ত দুটি এবং মাথা বিভক্ত করার কোন প্রয়োজন নেই, এবং একটি চেপ্টা ইতিমধ্যে সেখানে তাই তারা এক হয়ে গেছে!)

żṚFṁ
Ç€Ç

(দুটি লাইন থেকে: żṚFœs2Ḣএবং Ç€ÇFṁ⁸)

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

শব্দের একটি অ্যারে নেয় এবং নতুন শব্দের একটি অ্যারে প্রদান করে। (টিআইও-তে পাদলেখ এটি কল করে এবং স্পেসগুলির সাথে অ্যারেতে যোগ দেয় যাতে এটি দুর্দান্তভাবে প্রিন্ট করে))

দ্রষ্টব্য - একটি একক স্ট্রিং পরিচালনা করা, ট্যাব স্পেস এবং নিউলাইনগুলিতে বিভাজন করা, তখন পুনরায় সমাবেশ করা আসলে ততটাই জটিল প্রমাণিত হয়েছিল; একবার আমি দেখলাম যে শব্দের একটি তালিকা একটি বিকল্প যা জিনিসগুলি অনেক সহজ হয়ে যায়!

কিভাবে?

Ç€Ç - Main link: list of words
Ç€  - call the last link (1) as a monad for €ach word
  Ç - call the last link (1) as a monad for the result

żṚFṁ - Link 1: Do a twist: list (here, a list of words or characters)
                            e.g. input = [A,B,C,D,E,F,G]
ż    - zip the list with                 [A,    B,    C,    D,    E,    F,    G]
 Ṛ   - the reverse of the list             [G,    F,    E,    D,    C,    B,    A]
                                        [[A,G],[B,F],[C,E],[D,D],[E,C],[F,B],[G,A]]
  F  - flatten into a single list        [A,G,  B,F,  C,E,  D,D,  E,C,  F,B,  G,A]
                                         [A,G,B,F,C,E,D,D,E,C,F,B,G,A]
   ṁ - mould like the input list         [A,G,B,F,C,E,D]


মিষ্টি সংরক্ষণ; সেই চালাকিটি ভুলতে খুব সহজ!
— জোনাথন অ্যালান

2

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

শব্দের একটি অ্যারে নেয় এবং আউটপুট দেয়।

a=>a.map(w=>(F=([a,...b])=>a?a+(b.pop()||'')+F(b):'')(a.map(F)).slice(p,p+=w.length),p=0)

পরীক্ষা

স্ট্রিং সংস্করণ, 112 বাইট

একটি স্ট্রিং নেয় এবং আউটপুট দেয়।

s=>s.replace(/\S+/g,w=>(F=([a,...b])=>a?a+(b.pop()||'')+F(b):'')(s.split(/\s/).map(F)).slice(p,p+=w.length),p=0)

পরীক্ষা


2

পার্ল , 77 বাইট

-0paপতাকাগুলির জন্য কোডের 3 বাইট + 3 বাইট ।

map{s/.\K/chop/ge,s/../chop/reg}@F;s/\S/($r||=$F[$i++].pop@F)=~s%.%%,$&/ge

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

সংরক্ষিত 8 একটি পুরানো ধন্যবাদ বাইট @Ton Hospel এর পোস্টে যেখানে আমি "চুরি" s/../chop/reg। (আমার আগে ছিল $c=y///c/2,s/.{$c}$//)


0

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

{my &t={(|(.shift,.pop)xx*)[^$_]}
map({|t [.comb]},t [$_]).rotor($_».chars)».join}

শব্দগুলির একটি তালিকা ইনপুট এবং আউটপুট দেয়।

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

ল্যাম্বদার ভিতরে, আমি " সামনের দিকে এবং পিছন থেকে বিকল্প ফ্যাশনটিতে চরিত্রগুলি গ্রহণ " মোচড় করার জন্য আরেকটি ল্যাম্বডাকে সংজ্ঞায়িত করেছি :

my &t={                        }   # Lambda, assigned to a variable.
          .shift,.pop              # Remove an element from the front an back,
                      xx*          # an infinite number of times,
        |(           )             # and make sure this infinite list is flattened.
                          [^$_]    # Take as many elements as the input had elements.

এটি কাজ করে কারণ xx অপারেটর কোনও ফাংশনের চেয়ে ম্যাক্রোর মতো, এটি যাদু অলস মূল্যায়ন সরবরাহ করে।

তারপরে মূল ল্যাম্বডায়:

                   [$_]                          # Create a fresh array from the input,
                 t                               # and twist it (destructively).
map({          },                                # For each element (i.e. word):
      t [.comb]                                  #   Split it into characters and twist them,
     |                                           #   and slip them into the outer list.
                        .rotor($_».chars)        # Partition this flat list of characters,
                               $_».chars         # using the original word lengths.
                                         ».join  # Turn each sub-list into a word.

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

{my &t={(|(.shift,.pop)xx*)[^$_]}
my @a=map {|t [.comb]},t [.words];S:g/\S/{@a.shift}/}

এটি উপরেরটির একটি প্রকরণ, যা একটি স্ট্রিংকে ইনপুট দেয় এবং আউটপুট দেয় different বিভিন্ন সাদা স্থান অক্ষর সংরক্ষণ করে।


0

হাস্কেল , 115 95 93 98 95 বাইট

f(a:b)=a:f(reverse b)
f e=e
a!(y:z)|elem y" \t\n"=y:a!z|b:c<-a=b:c!z
a!z=z
(!)=<<(f=<<).f.words

সাথে কল (!)=<<(f=<<).f.words $ "some string"।এটি অনলাইন চেষ্টা করুন!

আমি আগে চ্যালেঞ্জটি ভুলভাবে লিখেছি বলে উল্লেখ করার জন্য @ নিমিকে ধন্যবাদ জানাই।

ফাংশনটি fতালিকায় মোচড় দেয় so a!bস্ট্রিংয়ের সাদা স্থানকে স্ট্রিংয়ে bintoোকানa ।

(!)=<<(f=<<).f.wordsসমান \s0 -> (concatMap f . f . words $ s0) ! s0:

            s0 = "The quick brown fox jumps\nover the lazy dog."
      words s0 = ["The","quick","brown","fox","jumps","over","the","lazy","dog."] = s1
          f s1 = ["The","dog.","quick","lazy","brown","the","fox","over","jumps"] = s2
concatMap f s2 = "Tehd.ogqkucilyazbnrwotehfxoorvejsupm"                           = s3
       s3 ! s0 = "Teh d.ogq kucil yaz bnrwo\ntehf xoo rvej supm"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.