প্রোগ্রামাররা যেমন বলে: অলস হওয়ার চেষ্টা করুন


25

গল্প

9gag থেকে আপনি এই পোস্টটি দেখেছেন ? আপনার নিজের বাক্য তৈরি করার অনুভূতি হতে পারে। তবে আপনি বুঝতে পারবেন যে আপনি আধ ঘন্টার মধ্যে কেবল একটি স্ক্রিপ্ট গল্ফ করতে পারেন, এবং আপনাকে কখনই এটির সাথে সময় কাটাতে হবে না।

জমা দেওয়া

আপনার প্রোগ্রামটি একটি ইনপুট স্ট্রিং পাবে যা এটি নীচে বর্ণিত হিসাবে যুক্ত উদ্ধৃতি চিহ্নগুলির সাথে ফিরে আসবে। স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ। লাইনের তালিকা হিসাবে আউটপুট অনুমোদিত। ট্রেলিং স্পেস এবং খালি লাইনগুলিকে অনুমতি দেওয়া হয় যা আউটপুট ভঙ্গ করে না।

ইনপুট বিধি

  • ইনপুটটিতে কেবল প্রিন্টযোগ্য ASCII অক্ষর রয়েছে।
  • ইনপুটটিতে স্পেস থাকতে পারে। কথাগুলি তাদের সাথে স্থির হয়।
  • এটি গ্যারান্টিযুক্ত যে কোনও স্থান কখনই অন্য স্থান দ্বারা অনুসরণ করা হবে না।
  • কোনও ইনপুট বা খালি স্ট্রিংয়ের ক্ষেত্রে কিছু আসে যায় না।

আউটপুট নিয়ম

যদি একটি শব্দ দেওয়া হয় তবে প্রোগ্রামটি উদ্ধৃতি চিহ্নগুলির মধ্যে স্ট্রিংটি ফিরিয়ে দিতে হবে।

যদি ইনপুট স্ট্রিংয়ে 2 বা ততোধিক শব্দ থাকে তবে এটি প্রথমে প্রাথমিক ইনপুট দেয়, তবে প্রথম শব্দটি উদ্ধৃতি চিহ্নগুলিতে হয়। তারপরে পরের লাইনে এটি প্রাথমিক ইনপুটটি দেয় তবে উদ্ধৃতিতে দ্বিতীয় শব্দের সাথে। এবং তাই বাকি শব্দগুলির জন্য।

সাধারণভাবে, প্রোগ্রামটিকে ইনপুটটিতে যতগুলি লাইন রয়েছে তেমন ফিরিয়ে দিতে হবে।

উদাহরণ:

test -> "test"

This is codegolf -> "This" is codegolf
                    This "is" codegolf
                    This is "codegolf"

This is a significantly longer, but not the longest testcase -> "This" is a significantly longer, but not the longest testcase
                                                                This "is" a significantly longer, but not the longest testcase
                                                                This is "a" significantly longer, but not the longest testcase
                                                                This is a "significantly" longer, but not the longest testcase
                                                                This is a significantly "longer," but not the longest testcase
                                                                This is a significantly longer, "but" not the longest testcase
                                                                This is a significantly longer, but "not" the longest testcase
                                                                This is a significantly longer, but not "the" longest testcase
                                                                This is a significantly longer, but not the "longest" testcase
                                                                This is a significantly longer, but not the longest "testcase"

Here is an another one -> "Here" is an another one
                          Here "is" an another one
                          Here is "an" another one
                          Here is an "another" one
                          Here is an another "one"

এটি , তাই কমপক্ষে বাইট উত্তরটি জিতবে!


7
নকল শব্দ থাকবে?
অজ্ঞতার প্রতিমূর্তি

10
আমরা কি ধরে নিতে পারি ইনপুট স্ট্রিংয়ে "অক্ষর থাকবে না ?
ডুরকনব

1
পুনরায় "অলস হওয়ার চেষ্টা করুন" : আমি মনে করি এটি ল্যারি ওয়াল যা বলেছে তার একটি ভুল ব্যাখ্যা রয়েছে। - " বেশিরভাগ লোক অলসতাটিকে স্ল্যাকার বা পালঙ্ক আলুর প্রতিশব্দ হিসাবে দেখেন, তবে ওয়ালের সংজ্ঞা কার্যকারিতা সম্পর্কে। "
পিটার মর্টেনসেন

14
এই "সমস্যা "টি" মজাদার "থেকে" গল্ফ "হওয়া উচিত।
জোনো 2906

3
আমরা বিভিন্ন উদ্ধৃতি, মত ব্যবহার করতে পারি '', ‘’অথবা “”বদলে ""?
জিউসেপ

উত্তর:


10

vim, 38 বাইট

:s/"/<C-d>/g
qqysW"Ypds"W@qq@qdk:%s/<C-d>/"/g

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

প্রয়োজন তেজ-পারিপার্শ্বিক প্লাগইন

যদি ইনপুট থাকে না " অক্ষর 19 বাইটে করা যেতে পারে :

qqysW"Ypds"W@qq@qdk

এখানে, আমরা একটি পুনরাবৃত্ত ম্যাক্রো রেকর্ড করি qq ... @qq@qযা উদ্ধৃতি চিহ্নগুলি ( ysW") দিয়ে একটি শব্দকে ঘিরে , লাইনটি ( Yp) নকল করে , উদ্ধৃতি চিহ্নগুলি ( ds") মুছে ফেলে এবং পরবর্তী বারটিতে ( W) নিজেকে পুনরাবৃত্তভাবে কল করার আগে পদক্ষেপে নিয়ে যায় । এটি সমাপ্ত হওয়ার পরে, দুটি বহিরাগত লাইন রয়েছে যা দিয়ে মুছে ফেলা হয় dk

সম্পূর্ণ সমাধানটি সহজভাবে :s/"/<C-d>/gশুরুতে এটি মোড়ানো হয় যা বিদ্যমান "অক্ষরগুলিকে একটি ছাপিয়ে যাওয়া অক্ষর দ্বারা প্রতিস্থাপন :%s/<C-d>/"/gকরে এবং শেষে, যা প্রতিস্থাপনটিকে পূর্বাবস্থায় ফেলে।


2
আমি আসলে একই পদ্ধতিতে উদাহরণগুলি তৈরি করেছি: ডি
ক্রিনিস্টফ

8

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

([]#).words
a#(b:c)=unwords(a++('"':b++"\""):c):(a++[b])#c
_#_=[]

লাইনের একটি তালিকা ফেরত দেয়।

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


ইনপুটতে উদ্ধৃতি চিহ্ন, নিউলাইনস বা অন্যান্য পালানো চার্টার রয়েছে যখন এটি ব্যর্থ বলে মনে হচ্ছে।
গম উইজার্ড


@ শ্রুতচিলিজম ও'জাইক: স্থির। নির্দেশ করার জন্য ধন্যবাদ। সংক্ষিপ্ত সংস্করণ সম্পর্কে: xnor ইতিমধ্যে একটি উত্তর হিসাবে পোস্ট করেছে ।
নিমি

একেবারে স্থির নয়, যেহেতু শব্দগুলি \nশ্বেত স্পেস হিসাবে বিবেচনা করে এটি উপস্থিত থাকার সময় এটি অপ্রয়োজনীয় আচরণ করে।
গম উইজার্ড

@ শ্রীওচিলিজম ও'জাইক: "ইনপুটটিতে কেবল প্রিন্টযোগ্য এএসসিআইআই অক্ষর রয়েছে", যা স্পেস টু ~। "ইনপুটটিতে স্পেস থাকতে পারে" - "সাদা স্থান" নয়।
নিমি

7

রেটিনা 0.8.2 , 17 বাইট

 
" $'¶$` "
^|$
"

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার স্যুট অন্তর্ভুক্ত। ব্যাখ্যা:

 
" $'¶$` "

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

^|$
"

প্রথম এবং শেষ লাইন ঠিক করুন।


7

জেলি ,  15  14 বাইট

Ḳ⁾""j$€⁹¦K¥ⱮJ$

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

কিভাবে?

Ḳ⁾""j$€⁹¦K¥ⱮJ$ - Link: list of characters, S
Ḳ              - split (S) at spaces -> A
             $ - last two links as a monad:
           Ɱ   -   map...
            J  -   ...across: range of length -> I = [1,2,...len(A)]
          ¥    -   ...doing: last two links as a dyad: i.e. f(A, i) for i in I
      € ¦      -     sparse application...
       ⁹       -     ...to indices: chain's right argument, i
     $         -     ...action: last two links as a monad:
 ⁾""           -       literal list of characters = ['"', '"']
    j          -       join (with A[i]) -> (e.g. with ['i','s']) ['"','i','s','"']
         K     -     join with spaces

সহজ সংরক্ষণ । (এখানে মন্তব্য করার সিদ্ধান্ত
নিয়েছেন

@ এরিকথ আউটগল্ফারকে ধন্যবাদ, আমি নিজেই একই ধরণের উন্নতি পোস্ট করতে এসেছি।
জোনাথন অ্যালান

6

জাভাস্ক্রিপ্ট (ES6),  43 42 41  38 বাইট

@ মাইজে ধন্যবাদ 3 বাইট সংরক্ষণ করা

অ-মানক তবে ব্যাপকভাবে সমর্থিত RegExp.left​Contextএবং RegExp.rightContext। এটি অনেক আলাদা উদ্ধৃতি ...

s=>s.replace(/(\S+) ?/g,`$\`"$1" $'
`)

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


Smart! But see on the comma in the test case This is a significantly "longer,"...
mazzy

Wouldn't /(\S+)/g work?
Shaggy

1
@mazzy Oh, thanks. I actually did it that way on purpose because I misread the test case with a comma. Now fixed.
Arnauld

@Shaggy I think we need to capture the space so that it doesn't appear in the left context of the next word.
Arnauld

1
@mazzy I guess that's fine indeed. Thanks!
Arnauld

6

Java, 235 183 132 bytes

s->{String a[]=s.split(" "),r="",t;for(int l=a.length,i=0,j;i<l;i++,r+="\n")for(j=0;j<l;)r+=(t=i==j?"\"":"")+a[j++]+t+" ";return r;}

-52 bytes by abusing a variety of things (static access, list vs array, print instead of returning, etc. Thanks @ValueInk!)
-51 bytes by beung lazy and letting @KevinCruijssen do the work for me
Try it online


That's some crazy overhead you need for the java.util.Arrays.copyOfRange. If you utilize java.util.List you can use subList for shorter, and print to STDOUT instead of building an array. I got 193 bytes with those ideas, and also abusing the var keyword.
Value Ink

@ValueInk thanks! I also replaced String.join with s.join for those extra IDE warnings (and -10 bytes).
Benjamin Urquhart

1
@OlivierGrégoire no thank you :^)
Benjamin Urquhart

2
@OlivierGrégoire Challenge accepted and beaten, sir! ;p 71 bytes
Kevin Cruijssen

1
@KevinCruijssen Nice! I haven't even thought regex would do the job. Well done ;-)
Olivier Grégoire

5

First code golf attempt hopefully it's not terrible and hopefully it's not rule breaking

Kotlin, 105 112 147 117 bytes/chars

fun main(a:Array<String>){val q=a[0].split(" ")
q.forEach{println(q.fold(""){i,n->i+if(it==n)"\"$n\" " else n+" "})}}

Try it online!



4

JavaScript, 91 97 75 78 bytes

f= 

t=>t.split` `.map((c,i,a)=>[...a.slice(0,i),`"${c}"`,...a.slice(i+1)].join` `)

// and test
console.log(f("Hello folks and world").join('\n'));

Outputs a list of lines as a JavaScript array. The last entry has a trailing space as allowed in the question. The test code writes each entry to the console on a separate line for demonstration purposes.

Thanks to Shaggy for 19 bytes off and no leading spaces - when the spread operator is used on an empty array to initialize an array literal, no slots are created in the array produced by the spread operator:

let empty = [];
let array = [...empty, value]
//  produces an array of length 1 containing value 

(The 91 byte version had a leading space on the first line, the 97 byte version took 6 bytes to remove it.)



1
The snippet doesn't run because you defined the f function. Otherwise verified. Good job!
krinistof

@krinistof fixed it, thx!
traktor53

Words after the quoted word are separated by commas instead of spaces (Firefox, not sure if that's a browser issue)
wastl

1
@wastl Golfed 3 bytes too many and didn't see the commas due to blurry eyes. Putting back the second spread operator (as in Shaggy"s link) removes the commas . Note to self... put my glasses on next time ;-(
traktor53

4

Python 3, 79, 69, 65 bytes

w,i=input(),0
while~i:m=w.split();m[i]='"%s"'%m[i];print(*m);i+=1

Try it online!

Shaved 10 bytes thanks to xnor. And now this is 65 bytes as per Erik the Outgolfer solution. Program ends with IndexError but this is fine.


2
Terminating with error is fine for programs. A handy trick: you can use print(*l) in Python 3 in place of print(" ".join(l)).
xnor

Even better, use Extended Iterable Unpacking.
xnor

2
65 bytes: Instead of assigning w to input().split(), assign it to input(), then, in the while loop, assign m to w.split(), which will create a new list at each iteration to avoid reference issues, then set m[i] to '"%s"'%m[i] and print(*m).
Erik the Outgolfer

4

Java 8, 72 71 67 62 bytes

s->s.replaceAll("(?<=(^.*))(\\S+) ?(?=(.*$))","$1\"$2\" $3\n")

Try it online.

Explanation:

s->                    // Method with String as both parameter and return-type
  s.replaceAll("...",  //  Replace all matches in this regex
               "...")  //  With this
                       //  And then return the result

Regex explanation:

(?<=(^.*))(\\S+) ?(?=(.*$))   # === MATCH ===
(?<=     )                    # A positive look-behind to:
     ^.*                      #  The optional leading portion of the string
    (   )                     #  (which is captured in capture group 1)
           \\S+               # Followed by one or more non-space characters,
                              # so the next word in line
          (    )              # (which is captured in capture group 2)
                 ?            # Followed by an optional space
                  (?=     )   # Followed by a positive look-ahead to:
                      .*$     #  The trailing optional portion of the string
                     (   )    #  (which is captured in capture group 3)

$1\"$2\" $3\n                 # === REPLACEMENT ===
$1                            # The match of capture group 1
                              # (the leading portion)
    $2                        # Followed by the match of capture group 2
                              # (the current word in the 'iteration'),
  \"  \"                      # surrounded by quotation marks
                              # Followed by a space character
         $3                   # Followed by the match of capture group 3
                              # (the trailing portion)
           \n                 # Followed by a trailing newline

2
You have just paved the way for a multitude of regex answers. Well done.
Benjamin Urquhart

I tried to port this to Python. Sometimes I wish regex parsers were consistent across languages.
Benjamin Urquhart

1
@BenjaminUrquhart Unfortunately they aren't.. Java regex is different than C# regex, Python is different again, Perl is different again, etc. Indeed a bit annoying.
Kevin Cruijssen


3

রুবি , 98 টি চর rs

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

a=->s{s.split.each_index{|i|puts s.split.each_with_index.map{|a,j|i==j ? "\"#{a}\"":a}.join(" ")}}

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


Welcome to PPCG! My suggestion would be for each index, save s.split as a variable and edit the index you want to have the quotes around it, instead of using the overly verbose each_with_index.map. Also, you can submit the anonymous lambda without naming it, and join can be replaced with a * operator. This drops your byte count to 64 bytes.
Value Ink

ফ্যান্টাস্টিক! আমি জানতাম যে যোগ দেওয়ার জন্য আরও একটি ছোট উপায় আছে তবে আমি অফিস থেকে বের হওয়ার চেষ্টা করছিলাম এবং এক্সডি ছাড়ার আগে কিছু জমা দিতে চাইছিলাম। এর মতো বেনাম ল্যাম্বডাসের জন্য অনুমোদিত বিধিগুলি আমি বুঝতে পারি নি।
তুষারপাত

3

পার্ল 6 , 43 40 বাইট

{m:ex/^(.*?<<)(\S+)(>>.*)$/>>.join('"')}

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

সমস্ত সম্ভাব্য শব্দের সাথে মেলে, তারপরে প্রতিটি তালিকাতে উদ্ধৃতি দিয়ে যোগ দেয়। যদি আমরা বিপরীতে ক্রমে লাইন আউটপুট করতে পারি তবে এটি এক বাইট ছোট হতে পারে।

ব্যাখ্যা:

{                                      }  # Anonymous code block
 m:ex/^                  $/               # Match all strings
       (.*?)         (.*)                 # Match before and after sections
            <<(\S+)>>                     # And the actual word (with no spaces)
                           >>.join('"')   # And join each line by "s

3

প্রতিচ্ছবি , 229 বাইট

  _1 +\ /\/(3\  /(0\
/+_:   # \#_: v1=2#_ \
\     /_+/:3; / 1/\:1)
/v(3(2/ \3)(3 ;\#@ \ /
   /:#_(0\:_ / (0*  /0  \
 0 >~    <>~   <0 \  *#_/
 \       /     /\/ v/ 
   \=2#_1/\2#_>  (0~
                 \ ^\
\                   /

এটা পরীক্ষা করো!

আমি "মজাদার" "গল্ফিং" ভাষায় এটি "দ্রুত" গল্ফ দিয়েছি।

এই সমস্ত সাদা স্থানের দিকে তাকালে এটি সম্ভবত আরও সংক্ষিপ্ত হতে পারে।


3

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

map unwords.g.words
g(h:t)=(('"':h++"\""):t):map(h:)(g t)
g _=[]

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

স্ট্রিংগুলির একটি তালিকা আউটপুট করে। নিমির উত্তরের ভিত্তিতে ।


নিমির মতো এই উত্তরটি সঠিকভাবে কাজ করে না যখন ইনপুটটিতে \nবা এর মতো পালানো অক্ষর থাকে "
গম উইজার্ড

2

স্ট্যাক্স , 10 বাইট

▓¼MY@≈╢∞◙╗

এটি চালান এবং এটি ডিবাগ করুন

আনপ্যাকড, নিরবচ্ছিন্ন এবং মন্তব্য করা হয়েছে, এটি দেখতে এমন দেখাচ্ছে।

jY      split on spaces and store in y register
m       for each word, run the rest of the program and implicitly output
  '"|S  surround with double quotes
  yia&  start with register y, and replace the ith element, where i is the iteration index
  J     join with spaces

এটি চালান


2

সি (জিসিসি) , 136 133 বাইট

সি এর টোকেনাইজিং ফাংশনগুলি ভবিষ্যতের পাঠের স্ট্রিংকে বিশৃঙ্খলা তৈরি করবে, আমি পরিবর্তে প্রতিটি শব্দের জন্য সংখ্যা এবং অফসেটগুলি গণনা করি এবং তারপরে যখন বাহ্যিক লুপের মোট পুনরাবৃত্তির সংখ্যা শব্দের সাথে মেলে finish

i,j=1;f(s,c,t)char*s,*c,*t;{for(i=0;i++<j;puts(""))for(j=0,c=t=s;t;t=c+!!c)printf("%3$s%.*s%s ",(c=index(t,32))-t,t,"\""+!!(i-++j));}

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


অদলবদল "\""+!!(i-++j)করা i-++j?"":"\""আপনার একটি বাইট সংরক্ষণ করে।
গ্যাস্ট্রোপনার

2

পাওয়ারশেল , 60 40 36 বাইট

-20 বাইট আর্নল্ড দ্বারা অনুপ্রাণিত

$args-replace'(\S+) ?','$`"$1" $''
'

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

ফলাফলের মধ্যে একটি অতিরিক্ত স্থান এবং লেজের মধ্যে একটি খালি লাইন রয়েছে।


পাওয়ারশেল, কোনও রেজিপ্সপ নেই, 60 বাইট

($w=-split$args)|%{$p=++$c
"$($w|%{$q='"'*!--$p
"$q$_$q"})"}

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

কম গল্ফড:

$words=-split $args                     # split by whitespaces
$words|%{
    $position=++$counter
    $array=$words|%{
        $quotation='"'*!--$position     # empty string or quotation char
        "$quotation$_$quotation"
    }
    "$($array)"                         # equivalent to $array-join' '
}

ইনপুট শব্দগুলিতে ট্যাব বা অন্যান্য শ্বেত স্পেস থাকে তবে কোনওটিই কাজ করে না। চ্যালেঞ্জ থেকে, কেবল শূণ্য শব্দগুলি সীমিত করুন।
অ্যাডমবর্কবার্ক

আপনি অবশ্যই, ঠিক. তবে বিধিগুলি হ'ল: ১ The input only contains printable ASCII characters., ২ The input may contain spaces। ট্যাব এবং অন্যান্য শ্বেতস্পেস এএসসিআইআই প্রিন্টযোগ্য নয়, তাই না? :)
mazzy

1
আমি এটা সত্য অনুমান - আমি শুধুমাত্র ওপি এর মন্তব্য বন্ধ আমার বক্তব্যের ভিত্তিবিন্দু হয় এখানে , কিন্তু যে চ্যালেঞ্জ মধ্যে সম্পাদিত হয় নি ... তাই আমি অনুমান আপনার জমা জরিমানা যেমন বর্তমানে।
অ্যাডমবর্কবার্ক

2

জাভাস্ক্রিপ্ট, 62 বাইট

ধন্যবাদ 10 শেগি 10 বাইট বন্ধ করে গল্ফ করার জন্য

f=
x=>x.split` `.map((c,i,a)=>(s=[...a],s[i]=`"${c}"`,s.join` `))

console.log(f("Hello folks and world").join('\n'));

ব্যাখ্যা

  • ফাংশন প্রতিটি জায়গাতে স্ট্রিংকে বিভক্ত করে (x.split` `)
  • ফলাফলের অ্যারেতে প্রতিটি উপাদানগুলির জন্য নিম্নলিখিত ফাংশনটি সম্পাদন করুন
  • অ্যারের অগভীর অনুলিপি তৈরি করুন (গুলি = [... এ])
  • অ্যারেতে নবম এলিমেন্টটি প্রতিস্থাপন করুন নিজের সাথে উদ্ধৃতি চিহ্নগুলি দ্বারা ঘিরে (গুলি [i] = `" $ {সি} "`)
  • ফাঁকা স্থানের সাথে যুক্ত অগভীর অনুলিপি ফিরিয়ে দিন (s.join` `)



2

আর , 94 76 বাইট

-18 বাইট জিউসেপিকে ধন্যবাদ

m=matrix(s<-scan(,a<-'"'),n<-length(s),n);diag(m)=paste0(a,s,a);write(m,1,n)

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

টিআইও সঠিকভাবে স্থাপন করার জন্য ডিজিএমএলকে ধন্যবাদ। এটি উদাহরণস্বরূপ লাগে This is codegolfএবং সঠিকভাবে আউটপুট দেয়

"This" is codegolf 
 This "is" codegolf 
 This is "codegolf" 

এটি বারবার বারবারের সাথে ম্যাট্রিক্স ফর্ম্যাট ব্যবহার করে n; তারপরে আমাদের কেবল তির্যক এন্ট্রিগুলি পরিবর্তন করা দরকার। মনে রাখবেন যে সাধারণত আর কোড-গল্ফে স্ট্রিংগুলি পড়তে হয় scan(,"")তবে কোনও স্ট্রিং খালি স্ট্রিংয়ের পরিবর্তে what(বা w) প্যারামিটার হিসাবে ব্যবহার করা যেতে পারে ।

পুরানো অব্যক্ত সংস্করণের ব্যাখ্যা:

s <- scan(t=scan(,''),w=t)    # read in input and separate by spaces
n <- length(s)                # number of words
m = matrix(s, n, n)           # fill a matrix, one word per entry, each column corresponds to the whole sentence. The sentence is repeated n times.
diag(m) = paste0('"', s, '"') # replace diagonal entries with the corresponding word surrounded by quotes
cat(rbind(m,"\n"))        # add a \n at the end of each column, then print column-wise


@ জিউসেপ ধন্যবাদ! আমি কীভাবে দেখলাম না যে আমার কাছে দুটি কল দরকার নেই scan??
রবিন রাইডার

কখনও কখনও আপনি কেবল একটি গল্ফিং খাঁজে উঠেন। আমরা যদি এর চেয়ে অন্যান্য কোট ব্যবহার করতে পারি তবে আমরা 68 বাইট ব্যবহার করে ""কমিয়ে আনতে পারি । sQuote
জিউসেপ

2

এটি আমার প্রথম কোড গল্ফ। আশা করি এটি ছিটে না

সম্পাদনা: এটি আরও ভাল নিয়মিত অভিব্যক্তি সহ 54 বাইটে নেমেছে।

** সম্পাদনা 2: প্রতিটি পরামর্শ অনুসারে, একটি বাগ ঠিক করে এটিকে আরও খাটো করে **

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

t=>t.split(' ').map(v=>t.replace(v,'"'+v+'"'))

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


5
যদি ইনপুটটিতে সদৃশ শব্দ থাকে তবে পরবর্তী কপিগুলি কখনই উদ্ধৃত হয় না।
পুনরাবৃত্তি

স্পেসে বিভক্ত হওয়া আরও কম হবে।
শেগি

@ রিসার্সিভ ঠিক করা উচিত।
r3wt

@ শেগি ধন্যবাদ, আমি আপনার পরামর্শটি অন্তর্ভুক্ত করেছি
r3wt

1
সদৃশ শব্দের জন্য এখনও কাজ করে না
জো কিং

2

সি # (ভিসুয়াল সি # ইন্টারেক্টিভ কম্পাইলার) সঙ্গে /u:System.Text.RegularExpressions.Regexপতাকা, 59 40 বাইট

s=>Replace(s,"(\\S+) ?","$`\"$1\" $'\n")

আমার জাভা 8 উত্তর বন্দর , সুতরাং একটি ব্যাখ্যা জন্য সেখানে দেখুন। -আরনাউল্ডের রেজেক্স
পোর্ট করে -১৯ বাইটস , যেহেতু এবং$`$' C # এর .NET মধ্যে সমর্থিত।

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


2

এলম পুনরাবৃত্তি ব্যবহার করে, 132,130,121,111,100 99 বাইট

কেভিন ক্রুইজসেন কৌশলের জন্য 9 বাইট ডাউন গল্ফড এবং অন্য 22 বাইটকে কেবল এএসসিআইআই দ্বারা ফাটানো হয়েছিল । গল্ফ চলাকালীন অ-লেজ পুনরাবৃত্তিতে পরিণত হয়েছে।

f b a=case a of
 c::r->String.join" "(b++("\""++c++"\"")::r)::f(b++[c])r
 _->[]
u=f[]<<String.words

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

Stringবর্তমান সুযোগে 85 টি বাইট ফাংশন প্রকাশ করার পরে tes

f b a=case a of
 c::r->join" "(b++("""++c++""")::r)::f(b++[c])r
 _->[]
u=f[]<<words

অবরুদ্ধ সংস্করণ (লেজ পুনরাবৃত্তি ব্যবহার করে)

push : List a -> a -> List a
push list el =
    list ++ [ el ]

zip : (List a -> a -> List a -> b) -> List a -> List a -> List b -> List b
zip transform before after mapped =
    case after of
        [] ->
            mapped

        current :: rest ->
            transform before current rest
                |> push mapped
                |> zip transform (push before current) rest

wrap : appendable -> appendable -> appendable
wrap v str =
    v ++ str ++ v

cb : List String -> String -> List String -> String
cb before current rest =
    before ++ wrap "\"" current :: rest
        |> String.join " "

result : List String
result =
    zip cb [] (String.words "This is code golf") []

অসম্পূর্ণ চেষ্টা করুন


2

জাপট , 14 12 বাইট

¸£¸hYQ²i1X)¸

চেষ্টা করে দেখুন

অলিভারকে ধন্যবাদ 2 বাইট

¸£¸hYQ²i1X)¸     :Implicit input of string
¸                :Split on spaces
 £               :Map each X at index Y
  ¸              :  Split input on spaces
   hY            :  Set the element at index Y to
     Q           :    Quotation mark
      ²          :    Repeat twice
       i1X       :    Insert X at 0-based index 1


ডি আহা! অবশ্যই! ধন্যবাদ, অলিভার
শেগি

1

পাওয়ারশেল , 70 65 বাইট

param($a)$a.Split()|%{$a-replace[regex]"( |^)$_( |$)"," ""$_"" "}

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

পরীক্ষায় টেস্ট স্যুট রয়েছে। প্রথম সারিতে 1 টি শীর্ষস্থান এবং শেষ সারিতে 1 টি পিছনের স্থান রয়েছে। রিফ্যাক্টরের চেষ্টা করা হচ্ছে।


4
পরীক্ষার স্ট্রিংয়ে আপনার সদৃশ শব্দ থাকলে এটি কাজ করে না।
তুষারপাত

1

কাঠকয়লা , 19 বাইট

E⪪θ ⪫E⪪θ ⎇⁼κμ⪫""λλ 

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। দ্রষ্টব্য: ট্রেলিং স্পেস ব্যাখ্যা:

  θ                     Input string
 ⪪                      Split on literal space
E                       Map over words
       θ                Input string
      ⪪                 Split on literal space
     E                  Map over words
            μ           Inner index
          ⁼             Equals
           κ            Outer index
         ⎇             If true then
               ""       Literal string `""`
              ⪫         Joined i.e. wrapping
                 λ      Current word
                  λ     Otherwise current word
    ⪫                  Joined with literal space
                        Implicitly print each result on its own line

1

সংযুক্তি , 34 বাইট

Join&sp=>{On&_&Repr=>Iota@_}@Split

এটি অনলাইন চেষ্টা করুন!বেনামে ফাংশন লাইনের একটি তালিকা ফেরত।

ব্যাখ্যা

Join&sp=>{On&_&Repr=>Iota@_}@Split
                             Split      Splits the input on whitespace
         {         =>Iota@_}            Over each number K, 0 to #words - 1
          On  &Repr                     Apply the Repr (quoting) function
            &_                          on the Kth element in the input
Join&sp=>                               then rejoin the words of each inner sentence

1

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 123 বাইট

আমি ভাবছি যদি এটি নিয়মিত প্রকাশের সাথে সংক্ষিপ্ত করা যায়।

s=>(r=s.Split(' ')).Select((a,i)=>(string.Join(" ",r.Take(i))+" \""+a+"\" "+string.Join(" ",r.Skip(i+1))).Trim());string[]r

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




জাভা উত্তর বন্দর - 104 :)
ডানা


@ কেভিন ক্রুইজসেন - আমি দেখেছিলাম যে আপনি আগে এই রেইগেক্স পেয়েছিলেন :) মনে হয়েছে এটি সম্পূর্ণ ভিন্ন পদ্ধতি ছিল তাই আমি এটির চিত্র তুলে ধরার চেষ্টা করি নি, তবে হ্যাঁ এটি একটি ভাল সমাধান!
ডানা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.