ল্যাপা সে তৃষ্ণার্ত!


27

একটি তালিকা দেওয়া বা সীমিত স্ট্রিং দেওয়া হয়েছে, প্রতিটি শব্দের প্রথম বর্ণের সাথে একটি শব্দের পরে একটি তালিকা বা সীমানাঙ্কিত স্ট্রিং আউটপুট দেয়।

এই চ্যালেঞ্জের জন্য, একটি "শব্দ" স্থান, নিউলাইন এবং ট্যাব অক্ষর ব্যতীত কেবলমাত্র সমস্ত মুদ্রণযোগ্য ASCII অক্ষর নিয়ে গঠিত।

উদাহরণস্বরূপ, "শুভ বিকাল, বিশ্ব!" স্ট্রিংটি নিন (শূণ্যস্থান):

1. String
"Good afternoon, World!"

2. Get the first characters:
"[G]ood [a]fternoon, [W]orld!"

3. Move the characters over. The character at the end gets moved to the beginning.
"[W]ood [G]fternoon, [a]orld!"

4. Final string
"Wood Gfternoon, aorld!"

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

পরীক্ষার কেস:

Input -> output (space-delimited)

"Good afternoon, World!" -> "Wood Gfternoon, aorld!"
"This is a long sentence." -> "shis Ts i aong lentence."
"Programming Puzzles and Code Golf" -> Grogramming Puzzles Pnd aode Colf"
"Input -> output" -> "onput I> -utput"
"The quick brown fox jumped over the lazy dog." -> "dhe Tuick qrown box fumped jver ohe tazy log."
"good green grass grows." -> "good green grass grows."

আউটপুটে একটি পিছনের স্থান অনুমোদিত?
বিড়াল বিড়াল

আমরা কি ধরে নিতে পারি শব্দের মধ্যে সর্বাধিক এক স্থান থাকবে?
গণিত জাঙ্কি

চিঠিগুলি একে অপরকে অনুসরণ করতে পারে এমন কিছু নিয়মের সাথে আপনার একটি চামচিকতা জেনারেটর থাকতে হবে en.wikedia.org/wiki/Spoonerism
নামটির নাম প্রদর্শন করুন


@ মাথজানকি হ্যাঁ
কমরেড স্পার্কলপনি

উত্তর:



8

জাপট , 11 10 9 8 বাইট

জ্যাপের সূচক মোড়ানো এবং নেতিবাচক সূচকের সুবিধা গ্রহণ করে।

ËhUgEÉ g

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


ব্যাখ্যা

        :Implicit input of array U (each element is an individual word).
Ë       :Map over the array.
h       :Replace the first character of the current element (word) ...
Ug      :  with the word in the array at index ...
EÉ      :    current index (E) -1's ...
g       :  first character.
        :Implicit output of array of modified words

আমি মনে করি আপনি ইনপুটটি তালিকা হিসাবেও নিতে পারেন, আরও বাইট সংরক্ষণ করে¸
ইটিএইচ প্রোডাকশনগুলি

এটি একটি প্রসারিত হতে পারে, @ETH প্রোডাকশন, তবে আমি জিজ্ঞাসা করব। সম্পাদনা: এখানে
শেগি

1
হ্যাঁ, পোস্টের একেবারে শুরুতে এটি বলে যে "একটি তালিকা দেওয়া হয়েছে বা সীমানাঙ্কিত স্ট্রিং দেওয়া হয়েছে," নিশ্চিত যে এখনও কতক্ষণ সেখানে ছিল না (আমার ধারণা চ্যালেঞ্জটি প্রথম পোস্ট হওয়ার পরে থেকেই)।
ETH প্রোডাকশনগুলি

সুন্দর! ব্যবহার hকরা একটি ভাল ধারণা ছিল। আমি এসেছি £g´Y ¯1 +XÅযা আপনার কৌশলটি ব্যবহার করে £ XhUg´Y .1 হয়ে উঠতে পারে ।
অলিভার

5

হাস্কেল , 43 বাইট

p%((a:b):r)=(p:b):a%r
_%e=e
(%)=<<head.last

এটি অনলাইন চেষ্টা করুন! ইনপুট এবং আউটপুট জন্য স্ট্রিংয়ের একটি তালিকা ব্যবহার করে।

পূর্ববর্তী শব্দের প্রথম অক্ষরটি স্মরণ করে pএবং নতুন প্রথম চিঠিটি শৃঙ্খলে নামানোর সময় পুনরাবৃত্তভাবে এটি বর্তমান শব্দের প্রথম অক্ষর তৈরি করে। পূর্ববর্তী প্রথম অক্ষরটি শেষ শব্দের প্রথম অক্ষর হিসাবে শুরু করা হয়।


4

রুবি, 85 77 63 বাইট

খুব নিশ্চিত যে এটি আরও খাটো হতে পারে।

সম্পাদনা করুন - সংগ্রহ -> মানচিত্রের জন্য মান্যাটওয়ার্কের জন্য ধন্যবাদ

a=gets.split;$><<a.zip(a.rotate -1).map{|x,y|y[0]+x[1..-1]}*' '

আপনি উভয় .collectএবং .eachসঙ্গে প্রতিস্থাপন করতে পারে .map
manatwork

1
-pপতাকা (+1 বাইট) এবং i=-2;gsub(r=/\b\w/){$_.scan(r)[i+=1]}চূড়ান্ত গল্ফেজের জন্য
মান কালি

4

জেলি , 6 বাইট

Ḣ€ṙ-;"

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

আমার চেয়ে নিয়মগুলি আরও ভালভাবে পড়ার জন্য ডেনিসকে ধন্যবাদ , এটি শব্দের একটি তালিকা দেয়। এটি সম্পূর্ণ প্রোগ্রাম হিসাবে কাজ করে না।


4

সিজোম , 12 10 9 বাইট

জিমি 23013 কে 1 বাইট সংরক্ষণ করা হয়েছে

q~Sf+:()o

শব্দের তালিকা হিসাবে ইনপুট নেয়।

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

ব্যাখ্যা

     e# Example input: ["Good" "afternoon," "World!"]
q~   e# Read and eval the input.
     e# STACK: [["Good" "afternoon," "World!"]]
Sf+  e# Append a space to each word.
     e# STACK: [["Good " "afternoon, " "World! "]]
:(   e# Remove the first character from each substring.
     e# STACK: [["ood " 'G "fternoon, " 'a "orld! " 'W]]
)o   e# Remove and print the last element of the array.
     e# STACK: [["ood " 'G "fternoon, " 'a "orld! "]]
     e# Implicitly join the remaining array with no separator and output.

আপনি তালিকা হিসাবে ইনপুট এবং আউটপুট নিতে পারেন, আপনি জানেন।
কমরেড স্পার্কলপনি

@ কমরেডস্পার্কলপনি আপনি নিশ্চিত করেছেন যে আমি উত্তর দেওয়ার পরে: পি এখন এটি গল্ফ করছে
বিজনেস বিড়াল

)oজন্য 1m>
জিমি 23013


3

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

s=>s.map((k,i)=>s.slice(i-1)[0][0]+k.slice(1))

slice(-1)একটি অ্যারের শেষ উপাদানটি ফেরত দেয় এমন সুবিধা গ্রহণ করে ।

টুকিটাকি


আপনি কি যোগ দিতে সরাতে পারেন? প্রশ্নে বলা হয়েছে যে আপনি একটি তালিকা আউটপুট করতে পারেন। এটি 8 বাইট সাশ্রয় করবে
ক্রেগ আয়রে

1
@ ক্রেইগএয়ার, মিষ্টি, ধন্যবাদ!
রিক হিচকক

3

ভিম, 16 , 9 বাইট

<C-v>GdjPGD{P

7 ওয়াইট সংরক্ষিত @ ওয়াসনামের জন্য ধন্যবাদ!

প্রতি লাইনে একটি শব্দ ইনপুট নেয় eg

Hello
world
and
good
day
to
you

আমি বিশ্বাস করি যে তালিকাটি অনুমোদিত হিসাবে ইনপুট নেওয়ার পরে এটি ঠিক করা উচিত।

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


যদি আপনি এটি 'হাতে হাতে' করেন তবে এটি 12 টি কীস্ট্রোকে করা যেতে পারে। কীভাবে এখানে সিনট্যাক্সটি কীভাবে স্পষ্ট করে বলতে হবে তা নিশ্চিত নন বা এই ধাঁধাটিতে এটি করা বৈধ কিনা। ^vGdjPGd$ggP (যেখানে control v হ'ল [কন্ট্রোল + ভি] কী কম্বো, স্রেফ উপরের বাম দিকে কার্সার দিয়ে শুরু করতে এবং কমান্ড মোডে থাকা নিশ্চিত হন)
উইসনেম

@ হোসনেম আহ, এটি দুর্দান্ত ধারণা! আরও কয়েকটি বাইট সংরক্ষণ করার জন্য আমি কয়েকটি ছোট ছোট জিনিস যুক্ত করেছি (উদাহরণস্বরূপ dd -> D, gg -> }) টিপটির জন্য ধন্যবাদ!
DJMcMayhem

আমি জানতাম না ডিডি এবং জিজি উভয়ের সংক্ষিপ্ত সংস্করণ ছিল! অসাধারণ :)
হোসনেম

"<Cv>" এর পরিবর্তে কোডটিতে v বর্ণটির চারপাশে "সুপারস্ক্রিপ্ট এইচটিএমএল ট্যাগগুলি" কীভাবে ব্যবহার করবেন? যা উত্তরে দেখলে কোডটি সঠিক দৈর্ঘ্যকে দেখায়। সুতরাং আপনার কোডটি দেখতে ... sসুপ> ভি </ translation> জিডিজেপিজিডি {পি ... দেখতে পাবেন যা স্ট্যাকএক্সচেঞ্জের ওয়েব পৃষ্ঠাটি সঠিকভাবে ফর্ম্যাট করলে।
হোসনেম

1
আমি দেখতে পাচ্ছি, কোঁকড়া ধনুর্বন্ধনীগুলি অনুচ্ছেদের মধ্যে প্রায় লাফ দেয়, এটি এখানে কাজ করে কারণ আমরা কেবল একটি অনুচ্ছেদে কাজ করছি। কুল। ওহ বাহ! যে বড় কোড ফাইলগুলির মাধ্যমে দ্রুত স্ক্রোলিং করে তোলে! এই টিপটির জন্য ধন্যবাদ। :)
হোসনেম

3

> <> , 44 বাইট

90.f3+0.>&i&01.>~r&l0=?;o20.
 i:" "=?^:1+ ?!^

স্থান-বিচ্ছিন্ন শব্দগুলি ধরে নেয়।

হারুন দ্বারা সংশোধন করা হয়েছে 1 বাইট


2

পাইথন 2, 74 বাইট

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

S=input().split()
print' '.join(b[0]+a[1:]for a,b in zip(S,S[-1:]+S[:-1]))

-৫ বাইট, @ রডকে ধন্যবাদ


@ রড ভাল পরামর্শ, ধন্যবাদ!
ডেড পসুম

4
S[:-1]সংক্ষিপ্ত করা যেতে পারে S; বিভিন্ন দৈর্ঘ্যের তালিকা জিপিং তালিকা যেকোন দীর্ঘতর থেকে স্বয়ংক্রিয়ভাবে কেটে যায়
জুলিয়ান ওল্ফ

2

হাস্কেল , 50 বাইট

f=zipWith(:).((:).last<*>init).map head<*>map tail

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


1
ফাংশনগুলি নামবিহীন হতে পারে, তাই আপনি এটি বাদ দিতে পারেন f=
নিমি

1
ওহ, দুর্দান্ত, আমি বুঝতে পারিনি যে হাস্কেলের জন্য কোনও অনলাইন সংকলক রয়েছে। আমি আমার মন্তব্যগুলি মুছে ফেলব, যেহেতু আমি ভুল ^^
ফান্ড মনিকার লসুইট

2

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

$c=end($_GET);foreach($_GET as$g)echo$g|$g[0]=$c^$g^$c=$g,' ';

2

সি #, 78 77 বাইট

using System.Linq;a=>a.Select((s,i)=>a[i-->0?i:a.Count-1][0]+s.Substring(1));

একটি Func<List<string>, IEnumerable<string>>, সম্পূর্ণ / ফর্ম্যাট সংস্করণে সংকলন :

using System;
using System.Collections.Generic;
using System.Linq;

class P
{
    static void Main()
    {
        Func<List<string>, IEnumerable<string>> f = a =>
                a.Select((s, i) => a[i-- > 0 ? i : a.Count - 1][0] + s.Substring(1));

        Console.WriteLine(string.Join(" ", f(new List<string>() { "Good", "afternoon,", "World!" })));
        Console.WriteLine(string.Join(" ", f(new List<string>() { "This", "is", "a", "long", "sentence." })));

        Console.ReadLine();
    }
}

2

ব্র্যাচল্যাগ , 12 বাইট

{hᵐ↻|bᵐ}ᶠzcᵐ

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

ব্যাখ্যা

Example input: ["Good","afternoon,","World!"]

{      }ᶠ       Find: [["W","G","a"],["ood","fternoon,","orld!"]]
 hᵐ↻              Take the head of each string, cyclically permute them
    |             (and)
     bᵐ           Get the strings without their heads
         z      Zip: [["W","ood"],["G","fternoon,"],["a","orld!"]]
          cᵐ    Map concatenate on each list: ["Wood","Gfternoon,","aorld!"]

2

আর, 72 70 বাইট

function(x)paste0(substr(x,1,1)[c(y<-length(x),2:y-1)],substring(x,2))

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

2 বাইট জিউসেপ্পিকে ধন্যবাদ রক্ষা করেছে।

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


1
আপনি যেহেতু 2 বাইট সংরক্ষণ করেন তার চেয়ে বেশি অগ্রাধিকার নেওয়ার 2:y-1পরিবর্তে আপনি ব্যবহার করতে পারেন । 1:(y-1):-
জিউসেপে


2

পাইথন 2 + নম্পি, 104 বাইট

from numpy import *
s=fromstring(input(),"b")
m=roll(s==32,1)
m[0]=1
s[m]=roll(s[m],1)
print s.tobytes()

1
আপনার আমদানি বিবৃতিটি বাইট গণনায় অন্তর্ভুক্ত করতে হবে। শীতল উত্তর!
কমরেড স্পার্কলপনি

এছাড়াও, আপনার বাইট গণনাতে আপনার ইনপুট এবং আউটপুট কোড থাকা দরকার
ফিলিপ নার্দি বাতিস্তা

1
আমি মনে করি আপনি 1 বাইটের জন্য চূড়ান্ত নিউলাইনটি বাদ দিতে পারেন।
janrjan জোহানসেন

@ JanrjanJohansen হ্যাঁ, "u1" এর পরিবর্তে "b "ও কাজ করে, তাই -2 বাইট।
মিখাইল ভি


1

গণিত, 59 বাইট

""<>#&/@Thread@{RotateRight@#~StringTake~1,#~StringDrop~1}&

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

শব্দের একটি তালিকা নেয় এবং ফেরত দেয়।

আপনি যদি স্ট্রিং নিতে এবং ফিরে পেতে পছন্দ করেন তবে এটি 87 বাইটের জন্য কাজ করে:

StringRiffle[Thread@{RotateRight@#~StringTake~1,#~StringDrop~1}&@StringSplit@#," ",""]&

1

রেটিনা, 46 37 31 বাইট

(\S)(\S* +)
$2$1
(.* .)(.)
$2$1

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

এখনও গল্ফ করা হচ্ছে ..


1
আপনি (.*)এবং ড্রপ করতে পারবেন না $3?
নিল

@ নীল হ্যাঁ, ধন্যবাদ
গণিত জাঙ্কি

যদি আপনি +প্রথম লাইনে একটি এ *পরিণত (.* .)করেন তবে আপনি তৃতীয় লাইনে ঘুরিয়ে (.*)-2 বাইটে পরিণত করেন। অনলাইনে চেষ্টা করে দেখুন!
পুনপুন1000

1

kdb +, 25 22 বাইট

সমাধান:

rotate[-1;1#'a],'1_'a:

উদাহরণ:

q)rotate[-1;1#'a],'1_'a:("The";"quick";"brown";"fox";"jumped";"over";"the";"lazy";"dog.")
"dhe"
"Tuick"
"qrown"
"box"
"fumped"
"jver"
"ohe"
"tazy"
"log."

ব্যাখ্যা:

1_'a:             // (y) drop first character of each element of a
,'                // join each left with each right
rotate[-1;1#'a]   // (x) take first character of each element of a, rotate backwards 1 char

অতিরিক্ত:

এমন একটি সংস্করণ যা নিয়মিত স্ট্রিং নেয় (37 বাইট):

q){" "sv rotate[-1;1#'a],'1_'a:" "vs x}"The quick brown fox jumped over the lazy dog."
"dhe Tuick qrown box fumped jver ohe tazy log."


0

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

বাইট গণনাটি আইএসও 8859-1 এনকোডিং ধরেছে।

Om$`^.((?=.*¶))?
$#1

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

ইনপুট এবং আউটপুট লাইনফিড দ্বারা পৃথক করা হয়। পরীক্ষা স্যুটটি স্থান-বিচ্ছেদ থেকে প্রয়োজনীয় I / O রূপান্তর সম্পাদন করে।


লাইনফিড বিচ্ছেদ ব্যবহার করা ভাল।
কমরেড স্পার্কলপনি

0

গণিত, 134 বাইট

(w=Characters@StringSplit@#;d=Drop[w,0,1];StringRiffle[StringJoin/@Table[PrependTo[d[[i]],RotateRight[First/@w][[i]]],{i,Length@w}]])&


0

জাভা (ওপেনজেডিকে 8) , 97 বাইট

for(int n=s.length,i=0,j=n-1;i<n;j%=n)System.out.print(s[j++].charAt(0)+s[i++].substring(1)+" ");

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


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

0

সি, 106 77 বাইট

i,a,b;f(char*o){a=*o;for(i=0;o[i++];)if(o[i]==32){b=o[++i];o[i]=a;a=b;}*o=a;}

স্কটনেট থেকে -29 বাইট

জায়গায় জায়গায় স্ট্রিংটি পরিবর্তন করে।

Ungolfed:

char *f(char *o){
    char a=*o,b; // start with a as the first character of the first word
    for(int i=0;++i<strlen(o);){
        // iterate through the string with i as the index
        if(o[i]==32){ // if the current character is a space, 
                      // i.e. if a word begins after this character
            b=o[++i]; // store the beginning of the next word in b
            o[i]=a; // set the beginning of the next word to a
            a=b; // set a to what the beginning of the next work used to be
        }
    }
    *o=a; 
    // set the beginning of the first word to the old beginning of the last word
}

গল্ফিয়ার সংস্করণ প্রস্তাব (ঠিক একই কোড): -29 বাইট
স্কটিনেট



0

হুশ , 11 বাইট

Foz:ṙ_1TmΓ,

স্ট্রিংগুলির তালিকা হিসাবে ইনপুট এবং আউটপুট, এটি অনলাইনে চেষ্টা করুন!

(শিরোনামটি কেবল শব্দের তালিকায় ইনপুটটি রূপান্তর করে এবং ফাঁকা স্থানের সাথে আউটপুট তালিকায় যোগ দেয়))

ব্যাখ্যা

F(z:ṙ_1)TmΓ,  -- example input: ["Good" "afternoon,","World!"]
         m    -- map the following (example on "Good")
          Γ   -- | pattern match head & tail: 'G' "ood"
           ,  -- | construct tuple: ('G',"ood")
              -- : [('G',"ood"),('a',"fternoon,"),('W',"orld!")]
        T     -- unzip: ("GaW",["ood","fternoon,","orld!"])
F(     )      -- apply the function to the pair
    ṙ_1       -- | rotate first argument by 1 (to right): "WGa"
  z:          -- | zip the two by (example with 'W' and "ood")
              -- | | cons/(re)construct string: "Wood"
              -- :-: ["Wood","Gfternoon,","aorld!"]

বিকল্প, 11 বাইট

§oz:ṙ_1m←mt

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


0

এডাব্লুকে , 63 বাইট

{for(R=substr($NF,1,1);++j<=NF;R=r)sub(r=substr($j,1,1),R,$j)}1

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

দেখে মনে হচ্ছে অযৌক্তিকতা হ্রাস করার কোনও উপায় থাকা উচিত, তবে আমি এটি দেখছি না।

দ্রষ্টব্য: টিআইও লিঙ্কটিতে মাল্টলাইন ইনপুট দেওয়ার জন্য 4 টি অতিরিক্ত বাইট রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.