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


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.