ASCII कला बढ़ाएँ


64

इस चुनौती में, आपको मल्टीलाइन ASCII कला को इनपुट के रूप में लेना चाहिए, जैसे:

 OOOOOO  OOOOOO  OOOOOO  OOOOOOO      OOOOOO   OOOOOO  OO      OOOOOOO 
OO      OO    OO OO   OO OO          OO       OO    OO OO      OO      
OO      OO    OO OO   OO OOOOO       OO   OOO OO    OO OO      OOOOO   
OO      OO    OO OO   OO OO          OO    OO OO    OO OO      OO      
 OOOOOO  OOOOOO  OOOOOO  OOOOOOO      OOOOOO   OOOOOO  OOOOOOO OO      

और आप इनपुट के रूप में एक पूर्णांक भी लेंगे। आपको पूर्णांक के साथ निर्दिष्ट राशि से बढ़े हुए ASCII कला का उत्पादन करना होगा। उदाहरण के लिए, यदि आपने दूसरे तर्क का उपयोग किया है 3, तो आउटपुट होगा

   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO                  OOOOOOOOOOOOOOOOOO         OOOOOOOOOOOOOOOOOO      OOOOOO                  OOOOOOOOOOOOOOOOOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO                  OOOOOOOOOOOOOOOOOO         OOOOOOOOOOOOOOOOOO      OOOOOO                  OOOOOOOOOOOOOOOOOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO                  OOOOOOOOOOOOOOOOOO         OOOOOOOOOOOOOOOOOO      OOOOOO                  OOOOOOOOOOOOOOOOOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO                              OOOOOO                     OOOOOO            OOOOOO   OOOOOO                  OOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO                              OOOOOO                     OOOOOO            OOOOOO   OOOOOO                  OOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO                              OOOOOO                     OOOOOO            OOOOOO   OOOOOO                  OOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOOOOOOOOOOO                     OOOOOO         OOOOOOOOO   OOOOOO            OOOOOO   OOOOOO                  OOOOOOOOOOOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOOOOOOOOOOO                     OOOOOO         OOOOOOOOO   OOOOOO            OOOOOO   OOOOOO                  OOOOOOOOOOOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOOOOOOOOOOO                     OOOOOO         OOOOOOOOO   OOOOOO            OOOOOO   OOOOOO                  OOOOOOOOOOOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO                              OOOOOO            OOOOOO   OOOOOO            OOOOOO   OOOOOO                  OOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO                              OOOOOO            OOOOOO   OOOOOO            OOOOOO   OOOOOO                  OOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO                              OOOOOO            OOOOOO   OOOOOO            OOOOOO   OOOOOO                  OOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO                  OOOOOOOOOOOOOOOOOO         OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO   OOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO                  OOOOOOOOOOOOOOOOOO         OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO   OOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO                  OOOOOOOOOOOOOOOOOO         OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO   OOOOOO

विशेष रूप से, प्रत्येक वर्ण एक में बदल जाते हैं चाहिए nद्वारा nउस चरित्र है, जहां के बॉक्स nपूर्णांक तर्क है। उदाहरण के लिए, का एक इनपुट

ab
cd

और 3 में परिणाम होगा

aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

यह , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है।


ascii कला प्रश्नों की सूची में दिलचस्प लगती है
जस्टिन

6
मुझे लगता है कि आपको एक विधि के लिए एक माध्यमिक / बोनस दौर बनाना चाहिए जो बढ़े हुए कला में उचित अलियासिंग का परिचय देता है। आपका विशालकाय कोड गोल्फ कला बहुत अवरुद्ध लग रही है।
अमेलियाबीआर

5
@AmeliaBR यहाँ देखें ।
हावर्ड

जवाबों:


37

एपीएल, 7 चार्ट / बाइट्स *

{⍺/⍺⌿⍵}

संख्या और इनपुट स्ट्रिंग को पैरामीटर के रूप में लेता है और परिणाम देता है:

      a
abcde
fghij
      2 {⍺/⍺⌿⍵} a
aabbccddee
aabbccddee
ffgghhiijj
ffgghhiijj
      3 {⍺/⍺⌿⍵} a
aaabbbcccdddeee
aaabbbcccdddeee
aaabbbcccdddeee
fffggghhhiiijjj
fffggghhhiiijjj
fffggghhhiiijjj

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: एपीएल अपने स्वयं के (विरासत) सिंगल-बाइट चारसेट में लिखा जा सकता है जो एपीएल प्रतीकों को ऊपरी 128 बाइट मानों में मैप करता है। इसलिए, स्कोरिंग के उद्देश्य से, N वर्णों का एक प्रोग्राम जो केवल ASCII वर्ण और APL प्रतीकों का उपयोग करता है, को N बाइट्स माना जा सकता है।


1
...: ओ यह कैसे काम करता है?
दरवाज़े

4
@DoorknobofSnow मल्टीलाइन स्ट्रिंग के लिए मानक प्रतिनिधित्व एपीएल एक आयताकार चरित्र मैट्रिक्स है (यदि रिक्त रेखाओं की असमान चौड़ाई है तो पीछे के साथ ) , हाँ, एपीएल वह पुराना है।) /फ़ंक्शन ( /ऑपरेटर के साथ भ्रमित नहीं होना चाहिए ... हाँ, एक ही प्रतीक है। ) बाईं ओर के तर्क के अनुसार मैट्रिक्स से डुप्लिकेट और / या कॉलम हटाता है। यदि वह एक अदिश राशि (साधारण संख्या) है तो उसे सभी इनपुट कॉलमों के लिए दोहराया जाता है। इसलिए 2/mएक मैट्रिक्स है जिसमें सभी कॉलम दोगुने हैं। संस्करण एक ही करता है, लेकिन पंक्तियों के लिए (या सामान्य स्थिति में प्रथम अक्ष विमानों।)
Tobia

6
सुंदर भाषा है, है ना? यह वास्तव में बहुत पठनीय है, एक बार जब आप कुछ दर्जन प्रतीकों को सीखते हैं। ASCII लाइन-शोर भाषाओं की तुलना में बहुत अधिक आप यहाँ देखते हैं ...
टोबिया

ठंडा। क्या Was हमेशा भाषा में था? यह गिलमैन और रोज़ बुक में नहीं था, और एपीएल \ 360 उल्लेख पर एक आइवरसन पुस्तक / [1] लेकिन man नहीं।
मार्क प्लॉटनिक

2
वाह। उस। है। बस। बहुत बढ़िया। मैं हूँ। गंभीर रूप से। अवाक् हो उठे। द्वारा। इस। कोड। मैं एक मात्र +1 से अधिक की पेशकश करना चाहूंगा, लेकिन अभी तक एक इनाम के लिए मेरा प्रतिनिधि काफी कम है।
आउटगॉल्फ

35

GolfScript, 20 अक्षर

n%(~{.{*}+@1/%n+*}+/

एसटीडीआईएन से सभी इनपुट लेता है, पहली पंक्ति स्केलिंग कारक है, बाकी मल्टीलाइन-इनपुट। आप ऑनलाइन उदाहरण का प्रयास कर सकते हैं ।

इनपुट

3
ab
cd

उत्पादन

aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

कोड

n%            # Split the input into separate lines
(~            # Take the first line and evaluate (factor)
{             # {...}+/ adds the factor to the code block and loops over
              # the remaining lines (i.e. the factor will be the top of stack
              # for each line of input
   .{         # Same thing, duplicate factor and add it to code block and
              # loop over each character (1/ splits the string into chars)
     *        # multiply single-char string with factor
   }+@1/%
   n+         # Join string by adding a newline
   *          # Multiply the line by the factor (left from the . operation)
}+/

अरे! आपको मुझसे बेहतर इनपुट प्रारूप, स्कोर और समय मिला है: - / +1
जॉन ड्वोरक

इसके अलावा, मैं थोड़े खो गया हूं इसे पढ़ना।
जॉन ड्वोरक

2
@JDDvorak ने कुछ स्पष्टीकरण जोड़ा।
हॉवर्ड

वाह। आज मैंने सीखा है 1/। मुझे भी value function +अधिक उपयोग करने की आवश्यकता है ।
जॉन ड्वोरक

2
@CoryKlein: यह एक तरह से मदद मिलेगी अगर आप हमें बताया क्या त्रुटि है, लेकिन ... * क्रिस्टल बॉल में gazes * ... यह हो सकता है कि golfscript.rbनिष्पादन योग्य चिह्नित नहीं है, या पहली पंक्ति रूबी दुभाषिया के लिए गलत रास्ता है आपके सिस्टम के लिए। ओह, और यह echoसंभवतः होना चाहिए cat। कोशिश करो cat inputFile | ruby golfscript.rb scriptFile(या बस ruby golfscript.rb scriptFile < inputFile) और देखो कि काम करता है।
इल्मरी करोनें

19

जे, 20 17 वर्ण

f=.([#&.|:#)];._2

एक क्रिया को परिभाषित fकरता है जो आवश्यक है। उपयोग:

   3 f a
aaaccc
aaaccc
aaaccc
bbbddd
bbbddd
bbbddd

aइनपुट स्ट्रिंग कहां है
विंडोज पर एक अतिरिक्त चरित्र को हटाने के लिए आवश्यक है \r:

f=.([#&.|:#)}:;._2

स्पष्टीकरण :

];._2स्ट्रिंग के अंतिम चरित्र के आधार पर इनपुट स्ट्रिंग को चंक्स में काटता है, जो इस मामले में होगा \n। Windows के पास \r\nइतना है कि हमें }:एक अतिरिक्त वर्ण को बंद करने के लिए उपयोग करने की आवश्यकता है }:;._2:। कटे हुए दस्तावेज

बाकी कोड (असाइनमेंट के अपवाद के साथ f=.) एक कांटा है
यह इस तरह टूट जाता है:[ #&.|: #

यदि aहमारे इनपुट स्ट्रिंग की गणना होगी 3 # a(हम इस परिणाम को कॉल करेंगे x), तब 3 [ a(हम इस परिणाम को कॉल करेंगे y) y #&.|: x

3 # aबस के हर सदस्य की तीन प्रतियां बनाता है aक्रिया दस्तावेज़ की प्रतिलिपि बनाएँ
यह बदल जाता है

ab
cd

में

aaabbb
cccddd

3 [ aसिर्फ रिटर्न 3. वाम क्रिया प्रलेखन

अंत y #&.|: xमें yट्रांसपोज़ के तहत कॉपी है x#पहले की तरह काम करता है, लेकिन &.|:जे को पहले इनपुट को स्थानांतरित करने के लिए कहता है और फिर समाप्त होने पर इसे वापस स्थानांतरित करता है। संयोजन प्रलेखन के तहत , क्रिया प्रलेखन का हस्तांतरण

पारगमन बदल जाता है

aaabbb
cccddd

में

ac
ac
ac
bd
bd
bd

फिर कॉपी इसे बदल देती है

aaaccc
aaaccc
aaaccc
bbbddd
bbbddd
bbbddd

और इसे वापस भेजना आपको देता है

aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

4
विंडोज बेकार है, एह? : P
cjfaure

@ यह वास्तव में करता है।
गारेथ

यह छोटा है: [##"1इसके अलावा, मैं जम्मू में गोल्फ के अलिखित नियमों के बारे में निश्चित नहीं हूं, लेकिन मैं कहता हूं कि स्ट्रिंग विभाजन और असाइनमेंट को छोड़ दिया जा सकता है, प्रश्न की ढीली आवश्यकताओं को देखते हुए। मैंने निश्चित रूप से अपने एपीएल उत्तर में ऐसा किया था। उदाहरण:2 ([##"1) 'abcde',:'fghij'
तोबिया

17

हास्केल, 49 बाइट्स

x=(=<<).replicate
e n=unlines.x n.map(x n).lines

विस्तार कार्य है e, जो एक गिनती और एक स्ट्रिंग लेता है , और एक स्ट्रिंग लौटाता है:

λ: putStrLn $ e 3 "ab\ncd\n"
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

15

एपीएल, 11 वर्ण

@ गैरेथ ने जे में अनिवार्य रूप से पहले एक ही काम किया, इसलिए यह एपीएल प्रविष्टि केवल प्रदर्शनी के लिए है, प्रतियोगिता के लिए नहीं - वह विजेता है।

      E←{⍉⍺/⍉⍺/⍵}

उपयोग: बाएं आर्ग (Usage) में आवर्धन, दाहिने आर्ग (⍵) में 2d वर्ण मैट्रिक्स के रूप में कला।
⍺ / or वेक्टर या मैट्रिक्स की प्रत्येक पंक्ति में तत्वों को दोहराएगा (2 / 'OO' 'OO OO' बन जाता है)।
⍉⍺ / that संक्रमण करेगा, तत्वों को दोहराएगा, स्थानांतरित करेगा।

(यदि हम कार्यक्रम की लंबाई के बजाय स्पष्टता के लिए जा रहे थे, तो कोड ई ⍺ {⍺ / [1] ⍵ / ⍺} हो सकता था)

      I←5 32⍴' OOOOOO  OOOOOO  OOOOOO  OOOOOOOOO      OO    OO OO   OO OO     OO      OO    OO OO   OO OOOOO  OO      OO    OO OO   OO OO      OOOOOO  OOOOOO  OOOOOO  OOOOOOO'
      I
 OOOOOO  OOOOOO  OOOOOO  OOOOOOO
OO      OO    OO OO   OO OO     
OO      OO    OO OO   OO OOOOO  
OO      OO    OO OO   OO OO     
 OOOOOO  OOOOOO  OOOOOO  OOOOOOO

      3 E I
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO               
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO               
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO               
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOOOOOOOOOOO      
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOOOOOOOOOOO      
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOOOOOOOOOOO      
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO               
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO               
OOOOOO                  OOOOOO            OOOOOO   OOOOOO         OOOOOO   OOOOOO               
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO
   OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOO      OOOOOOOOOOOOOOOOOOOOO

मुझे हालांकि यह बताना चाहिए कि मैं 5 वर्णों का उपयोग करके स्ट्रिंग इनपुट को कैरेक्टर एरे में बदल देता हूं, इसलिए आप केवल मुझे 1 कैरेक्टर से हरा देते हैं। :-)
गारेथ

2
J को उस pesky डिज़ाइन लक्ष्य से शौक है, जिसमें ऑपरेटर ASCII वर्ण सेट तक सीमित हैं। :)
मार्क प्लॉटनिक

2
हालाँकि, अगर हम बाइट्स में मापते हैं, जैसे कि ओपी ने कहा, तो यह 44 बाइट्स हैं (बेशक यूनिकोड को लागू करना, utf-8 नहीं) और @ गैरेथ का अभी भी 17 वर्ष है। यह उन भाषाओं के नकारात्मक पहलू हैं जो ASCII तक सीमित नहीं हैं।
cjfaure

5
@ ट्रिमस्टी लेकिन एपीएल का अपना चरित्र सेट है जो प्रत्येक चरित्र को एक बाइट में मैप करता है, इसलिए यकीनन यह अभी भी 11 बाइट है।
अस्थिरता

1
@Volatility एचएम। यह वास्तव में अजीब है, क्षमा करें, पता नहीं था: पी
cjfaure

13

बैश / पाल लिपि, 48 वर्ण

printf -vr %$1s
sed -n s/./${r// /&}/g${r// /;p}

स्क्रिप्ट के रूप में सहेजें, chmod +xऔर चलाएं:

$ ./asciiexpand 3 <<< $'ab\ncd'
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd
$ 

यह कैसे काम करता है?

इसका मांस sedकमांड में है। उदाहरण के लिए, यदि n = 3 है, तो sed कमांड का विस्तार कुछ इस तरह किया जाता है:

sed -n 's/./&&&/g;p;p;p'

इस यौगिक sedकमांड को इसमें विभाजित किया जा सकता है:

  • s/./&&&/g - यह स्थानापन्न कमांड प्रत्येक वर्ण से मेल खाता है और इसे वर्ण के साथ 3 बार दोहराया जाता है
  • 3x pकमांड - यह सिर्फ पूरे पैटर्न स्पेस (यानी वर्तमान लाइन) को 3 बार प्रिंट करता है

हम -nयह बताने के लिए कि कुछ भी नहीं छापने के लिए sed को पास करते हैं जब तक कि स्पष्ट रूप से नहीं बताया जाता है, इसलिए हमारे पास पूरा नियंत्रण है कि क्या छपा है और कितनी बार है।

मैं मनमाने ढंग से लंबाई को दोहराते हुए तारों को सीधे उत्पन्न करने का एक त्वरित तरीका नहीं समझ सका sed, इसलिए मैंने bashइसके बजाय कुछ तरकीबें इस्तेमाल कीं:

printf -vr "%3s"

यह 3 प्रमुख स्थानों के साथ एक स्ट्रिंग (निर्दिष्ट नहीं, यानी खाली) प्रिंट करता है, और bashचर को परिणाम प्रदान करता है r

इसके बाद हम bashरिक्त स्थान की इस स्ट्रिंग को बदलने के लिए पैरामीटर विस्तार का उपयोग करते हैं जिसे हमें sedअभिव्यक्ति में प्रतिस्थापित करने की आवश्यकता है :

$ echo ${r// /&}
&&&
$ echo ${r// /;p}
;p;p;p
$ 

मैं printfप्रारूप विनिर्देशक और sedअभिव्यक्ति के आसपास के उद्धरणों को हटाने में सक्षम था , क्योंकि bashशेल में भागने वाले किसी भी पात्र के भीतर कोई भी अक्षर नहीं था ।

अक्षर गणना:

$ submission='r=`printf %$1s`
> sed -n s/./${r// /&}/g${r// /;p}'
$ echo ${#submission}
48
$ 

मुझे नहीं पता कि यह कैसे काम करता है लेकिन यह काम करता है!
टॉमस

1
चर n 1 नियम का उल्लंघन करता है: "हार्डकोड नहीं किया जा सकता है"।
मैनाटवर्क

1
बस उपयोग करें $1और निकालें n=3;, आप 4 वर्णों को भी बचाएंगे और शायद {}प्रिंट में भी।
टॉमस

और जैसा कि हम मान सकते हैं $ 1 संख्यात्मक होगा printf, 52 अक्षरों को कम करने के लिए तर्क के आसपास के उद्धरण आवश्यक नहीं हैं r=`printf %$1s`;sed -n "s/./${r// /&}/g${r// /;//p}":।
मैनटवर्क

1
@ टोमास - आपको शायद पता चल गया है कि यह अब तक कैसे काम करता है, लेकिन आपकी रुचि के मामले में मैंने एक विवरण जोड़ा है।
डिजिटल ट्रामा

9

PERL,  41 39 25   22 चार्ट

PERL, सरल और प्रभावी - कार्य के लिए सही बनाया गया। जब इनवाइट किया जाता है -pi3, 3तो पैरामीटर कहां है n:

s/./$&x$^I/ge;$_ x=$^I

शास्त्रीय समाधान (39 वर्ण):

$n=<>;print map{s/./$&x$n/ge;"$_"x$n}<>

शास्त्रीय समाधान की आवश्यकता nइनपुट की पहली पंक्ति में निर्दिष्ट है, जैसे

3
ab
cd

धन्यवाद @manatwork $&चाल के लिए।


1
ठंडा। लेकिन आपको मिलान किए गए पात्रों को पकड़ने की आवश्यकता नहीं है s/./$&x$n/ge:।
मैनाटवर्क

8

रूबी:  64  49 अक्षर

एसटीडीआईएन पर प्राप्त सभी डेटा: पहले स्केलिंग कारक को लाइन करते हैं, फिर एएससीआईआई कला को।

BEGIN{n=gets.to_i}
$_=[$_.gsub(/./){$&*n}]*n*$/

नमूना रन:

bash-4.2$ ruby -lpe 'BEGIN{n=gets.to_i};$_=[$_.gsub(/./){$&*n}]*n*$/' <<< '3
> ab
> cd'
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

रूबी:  44  41 अक्षर

यह मानते हुए कि हर इनपुट लाइन को लाइन विभाजक के साथ समाप्त किया जाता है। @Ventero को धन्यवाद।

$.<2?n=$_.to_i: $><<$_.gsub(/./){$&*n}*n

नमूना रन:

bash-4.2$ ruby -ne '$.<2?n=$_.to_i: $><<$_.gsub(/./){$&*n}*n' <<< '3
> ab
> cd'
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

1
सेट करने का एक छोटा तरीका n: $.<2?n=$_.to_i: $><<$_.gsub(/./){$&*n}*n(दुख की बात है कि बृहदान्त्र के बाद की जगह आवश्यक है, अन्यथा पार्सर भ्रमित हो जाता है)। के साथ भागो ruby -n
वेंटरो

रवींद्र। मैंने एन को असाइनमेंट को छोटा करने के लिए दर्जनों तरीकों की कोशिश की, लेकिन मुझे टर्नरी ऑपरेटर की कमी खली। साभार, @Ventero
मैनटवर्क

6

अजगर 3 - 84

फिर भी सबसे छोटा नहीं बल्कि एक अलग उत्तर है। एक दिलचस्प एक-लाइनर।

n=int(input())
for i in eval(input()):print(((''.join(j*n for j in i)+'\n')*n)[:-1])

पहले एक संख्या में रखो, फिर अजगर सूची के रूप में ASCII कला, उदाहरण के लिए:

C:\Users\User4\Desktop>c:/python33/python.exe golf.py
3
["aabb","bbcc","ccdd"]
aaaaaabbbbbb
aaaaaabbbbbb
aaaaaabbbbbb
bbbbbbcccccc
bbbbbbcccccc
bbbbbbcccccc
ccccccdddddd
ccccccdddddd
ccccccdddddd

5

GolfScript, 29 अक्षर

{:i;n/{1/:c;{c{i*}/n}i*}/}:f;

यह एक ब्लॉक को परिभाषित करता है f, कि जब बुलाया वांछित आउटपुट का उत्पादन करेगा। यह मानता है कि तर्क स्टैक पर हैं (क्योंकि मूल रूप से कैसे गोल्फस्क्रिप्ट में तर्क पारित किए जाते हैं)।

अघोषित (क्या यह भी समझ में आता है ?: पी):

{:i;n/{ # for each line...
  1/:c; # save characters of string in c
  {     # i times...
    c{  # for each character...
      i*
    }/
    n
  }i*
}/}:f;


# Test run
"ab
cd" 3 f

5

गोल्फस्क्रिप्ट, 23 वर्ण

~(:i;n/{{{.}i*}:c%c}%n*

मैंने एक संपूर्ण कार्यक्रम लिखने का फैसला किया है क्योंकि इसमें एक अनाम फ़ंक्शन भी कम ओवरहेड है:

  • ~(:i;- इनपुट को बाहर निकालें, फिर गुणक को घटाएं, इसे स्टोर करें iऔर त्यागें।
  • n/{...}%n* - newlines द्वारा विभाजित, प्रत्येक पंक्ति का नक्शा, newlines द्वारा शामिल हो
    • {...}:c%c, - एक ब्लॉक लें, इसे मानचित्र-प्रत्येक तत्व पर लागू करें, फिर इसे पूरी रेखा पर लागू करें।
      • {.}i*- इस तत्व iसमय की नकल करें

लाइव डेमो: http://golfscript.apphb.com/?c=OyciYWJjCmRlZiIzJwp%2BKppO24ve3t7Ln1pKn06YVVjfSVuKg%3D%3D

उदाहरण का उपयोग:

;'"abc
def"3'
~(:i;n/{{{.}i*}:c%c}%n*

5

पायथन 3 - 109 107 93

i=input;n,s,a=int(i()),i(),[]
while s:a+=[''.join(c*n for c in s)]*n;s=i()
print('\n'.join(a))

सबसे पहले, नंबर का इनपुट करें, फिर स्ट्रिंग। आत्म-व्याख्यात्मक होना चाहिए ...

हटाने के सुझाव के लिए वलीद खान का धन्यवाद []

aएक सूची होने का सुझाव देने के लिए अस्थिरता के लिए धन्यवाद ।


7
अभी ध्यान दिया; nsa आपके हर इनपुट को देख रहा है
जस्टिन

बाइट्स में सबसे छोटा कोड। क्या इसके बाद न्यूलाइन्स शामिल नहीं होंगी? क्या आपकी गिनती 112 नहीं होनी चाहिए?
cjfaure

क्षमा करें, मेरा मतलब 111 था।
cjfaure

@ सही आप सही हैं; मुझे लगा कि wordcounter.net ने नई संख्याएँ गिनाई हैं।
जस्टिन

2
aएक सूची में बनाओ , करो a+=[''.join(c*n for c in s)]*n, फिर print('\n'.join(a))अंत में करो। वह काम करना चाहिए।
अस्थिरता २

5

जावा - २१ Java

सबसे पहले गोल्फिंग का प्रयास करें। ऐसा लगता है कि जावा ऐसा करने की भाषा नहीं है।

enum M{;public static void main(String[]a){int f=new Integer(a[0]),i=0,j,k;a=a[1].split("\n");for(;++i<a.length*f;System.out.println())for(j=0;++j<a[i/f].length();)for(k=0;k++<f;)System.out.print(a[i/f].charAt(j));}}

विंडोज पर आपको "\ n" को "\ r \ n" से बदलना होगा।

java M 3 "ab
cd"
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

2
इनपुट वर्णों को नीचे की ओर और साथ ही विस्तृत करने की आवश्यकता होती है (इसलिए आपके आउटपुट उदाहरण में aaabbb3 पंक्तियाँ और ऊपर की 3 पंक्तियाँ होनी चाहिए cccddd)।
गारेथ

2
आप अतिरिक्त कर सकते हैं: 1 चरित्र के बजाय घोषणा में मैं इनिशियलाइज़ करके for; X के बजाय का उपयोग करके 8 वर्ण ( a=a[1].split("\n")और, सभी x को a से बदलें)।
manatwork

3
हाँ, किसी भी भाषा के साथ जहाँ सिर्फ mainअन्य भाषाओं में पूरे कार्यक्रमों की तुलना में अधिक बाइट्स लेने की घोषणा होती है, प्रतियोगियों को बोगी मिलने वाली है।
मार्क प्लॉटनिक

2
एचएम ठीक है। यहाँ लूप के लिए enum M{;public static void main(String[]a){int f=Integer.valueOf(a[0]),i=-1,j,k;a=a[1].split("\n");for(;++i<a.length*f;System.out.println())for(j=0;j<a[i/f].length();j++)for(k=0;k++<f;)System.out.print(a[i/f].charAt(j));}}
आउटर को

3
एक और 4 बाइट्स: Integer.valueOf(a[0])->new Integer(a[0])
यूरी शायलोव

5

(संपादित करें: यह समाधान अब अमान्य है क्योंकि निर्देश के शब्दार्थ बदल गए हैं। मुझे यह महसूस नहीं हुआ कि मैंने इसे बदलते समय पहले ही निर्देश का उपयोग कर लिया है। आप, हालांकि, केवल इसे बदलकर कार्यक्रम को ठीक कर सकते हैं। नया निर्देश ।)

स्कल्प्टिंग , 19 अक्षर

उम्मीद करता है कि इनपुट \n( \rगुणा) और पहली पंक्ति को अलग-अलग कारक से अलग किया जाएगा ।

겠坼銻標⑴가殲各標⓶各①復終겠併①復終

व्याख्या

겠坼 | split everything at \n
銻 | get first element (the factor)
標 | mark
⑴가殲 | bring list to front; remove first element (the factor)
各 | for each line...
    標⓶ | mark
    各①復終 | for each character, multiply it
    겠併 | add a newline and concatenate everything above the mark
    ①復 | multiply that
終 | end of loop

अंत में, स्टैक इस तरह दिखेगा:

[ factor, mark, line1, line2, line3, ... ]

चिह्न के ऊपर सब कुछ स्वचालित रूप से संक्षिप्त और आउटपुट है, बाकी को छोड़ दिया गया।


这太有意思了你是原创者对吧!?
theGreenCabbage

@theGreenCabbage ab ab । 电脑 踢 外 这个 踢 的 创始人
Justin

1
@ टिम्मी सॉरी आपको you sorry you बुलाने के लिए खेद है (बाहर की किक लकड़ी, उच्चारण चाय-मू-क्यों) ...
जस्टिन

@Quincunx: हे, मुझे यह अजीब लगा :) :) अंतिम iउच्चारण [iun] है, न कि [:i]; अब आप इसे चीनी में कैसे लिखेंगे?
तिमवी

@ टिम्मी ने सोचा कि इसका उच्चारण कैसे किया जाता है (लेकिन मैं इसके अनुरूप चरित्र के बारे में नहीं सोच सकता)। मैंने खोज और कॉपी- पेस्टिंग ( mdbg.net/chindict/chindict.php पर ) लिखा
जस्टिन

3

जे, 7 चरस

([#"1#)

@ टोबिया के एपीएल उत्तर में, लेकिन एससीआई चर्स में ठीक वैसी ही बात।

a =. ' 0 ',.'0 0',.' 0 '
a
 0 
0 0
 0 

2 ([#"1#) a
  00  
  00  
00  00
00  00
  00  
  00  

3

पॉवर्सशेल (96)

function m($n,$s){$s.split("`n")|%{$l="";$_.ToCharArray()|%{$c=$_;1..$n|%{$l+=$c}};1..$n|%{$l}}}

सोचा था कि मैं इसे एक शॉट में दे दूँगा PS। यह कम यहाँ रखने के लिए foreach के (%) में पाइपिंग का उपयोग करना है, लेकिन functionऔर ToCharArrayयह संक्षिप्तता एक हिट ले कर रहे हैं।

इसका उपयोग करने के लिए, आप इसे कमांड लाइन से इस तरह से कॉल करते हैं:

PS C:\> m 3 "ab
>> cd"
>>
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

यहाँ गैर-न्यूनतम संस्करण है:

function f($n, $s)
{
    $s.split("`n") | % {            # split input into separate lines
        $l=""                       # initialize an output line
        $_.ToCharArray() | % {      # split line into chars
            $c=$_ ; 1..$n | % {     # add n chars to the line
                $l+=$c 
            } 
        }
        1..$n | % {$l}              # output the line n times
    }
}

2
Mazzy ने function m($n,$s){-split$s|%{,(-join($_-split''|%{$_*$n}))*$n}}63 बाइट्स के लिए सुझाव दिया
Ovs

2

जूलिया, 74 वर्ण / बाइट्स

julia> f(i,n)=print(prod([(prod(["$c"^n for c in l])*"\n")^3 for l in split(i)]))
f (generic function with 1 method)

julia> f("ab\ncd",3)
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

7 कम अगर मैं सिर्फ स्ट्रिंग लौटाता हूं। julia>संवादात्मक संकेत है।


1
यह पहला जूलिया गोल्फ है जिसे मैंने देखा है।
cjfaure

@Trimsty codegolf.stackexchange.com/search?q=julia अभी भी बहुत दुर्लभ है, लेकिन वे कुछ (वास्तव में भाषा के डिजाइनरों में से एक सहित) किया गया है।
प्लेनैपस

@plannapus दिलचस्प! वहाँ एक नया, दुर्लभ esolang कहा जाता है ~ - ~! कि मैं भी इस्तेमाल किया है, हालांकि यह गोल्फ के लिए भयानक है।
cjfaure


2

पॉवरशेल, 54 बाइट्स

param($s,$n)$s-replace'.',('$0'*$n)-split'
'|%{,$_*$n}

टेस्ट स्क्रिप्ट:

$f = {

param($s,$n)$s-replace'.',('$0'*$n)-split'
'|%{,$_*$n}

}

@(
@"
ab
cd
"@
,
@"
 OOOOOO  OOOOOO  OOOOOO  OOOOOOO      OOOOOO   OOOOOO  OO      OOOOOOO
OO      OO    OO OO   OO OO          OO       OO    OO OO      OO
OO      OO    OO OO   OO OOOOO       OO   OOO OO    OO OO      OOOOO
OO      OO    OO OO   OO OO          OO    OO OO    OO OO      OO
 OOOOOO  OOOOOO  OOOOOO  OOOOOOO      OOOOOO   OOOOOO  OOOOOOO OO
"@
) | % {
    &$f $_ 3
}

व्याख्या:

  • $s-replace'.',('$0'*$n) प्रत्येक प्रतीक को नई रेखा से बाहर निकालता है।
  • -split'``n' नई लाइन द्वारा चौड़ी स्ट्रिंग को विभाजित करता है
  • |%{,$_*$n} एक सरणी तत्व के रूप में प्रत्येक पंक्ति को दोहराता है और सरणी देता है

परिणाम व्यापक और दोहराया तार की एक सरणी है।


2

आर , 83/72 बाइट्स

Alt दृष्टिकोण regexps का उपयोग कर

यदि हमें एक अनुगामी न्यूलाइन, 72 बाइट्स की अनुमति है:

function(s,n)cat(gsub("([^
]*
)",r,gsub("([^
])",r<-strrep("\\1",n),s)))

इसे ऑनलाइन आज़माएं!

अन्यथा, 83 बाइट्स:

function(s,n)write(rep(el(strsplit(gsub("([^\n])",strrep("\\1",n),s),"\n")),e=n),1)

इसे ऑनलाइन आज़माएं!



1

विस्तारित ब्रेनफक : 158

{a<]<[->+}3>,>3+[->4+[-<<4->>]&a>+<<]<+[-<,[>10+[-<->>+<]<[[->>+<<]3>[->[->+&a&a#3<+>>]>>]<[-]<<]>>[>[-4<[<]>[.>]>>.>]4<[-]<[-]4>[-]]>>[->+<]>[-<+<+>>]4<+<]>]

यह में बदल जाता है:

ब्रेनफक: 185

>>>,>+++[->++++[-<<---->>]<]<[->+>+<<]<+[-<,[>++++++++++[-<->>+<]<[[->>+<<]>>>[->[->+<]<[->+<]<[->+<<<+>>]>>]<[-]<<]>>[>[-<<<<[<]>[.>]>>.>]<<<<[-]<[-]>>>>[-]]>>[->+<]>[-<+<+>>]<<<<+<]>]

इसमें एक दुभाषिया की आवश्यकता होती है जिसमें या तो 0 है या EOF मार्कर के रूप में कोई परिवर्तन नहीं है। beef, Ubuntu रिपोज से उपलब्ध, प्रफुल्लित करता है:

$ ( echo -n 2
> cat <<eof
> BBBB  RRRR   AAA  IIII NN  NN FFFFF * * * KK  KK
> BB BB RR RR AA AA  II  NNN NN FF      *   KK  KK
> BBBB  RRRR  AAAAA  II  NNNNNN FFFF  ***** KKKKK
> BB BB RR RR AA AA  II  NN NNN FF      *   KK  KK
> BBBB  RR RR AA AA IIII NN  NN FF    * * * KK  KK
> eof
> ) | beef double.bf
BBBBBBBB    RRRRRRRR      AAAAAA    IIIIIIII  NNNN    NNNN  FFFFFFFFFF  **  **  **  KKKK    KKKK
BBBBBBBB    RRRRRRRR      AAAAAA    IIIIIIII  NNNN    NNNN  FFFFFFFFFF  **  **  **  KKKK    KKKK
BBBB  BBBB  RRRR  RRRR  AAAA  AAAA    IIII    NNNNNN  NNNN  FFFF            **      KKKK    KKKK
BBBB  BBBB  RRRR  RRRR  AAAA  AAAA    IIII    NNNNNN  NNNN  FFFF            **      KKKK    KKKK
BBBBBBBB    RRRRRRRR    AAAAAAAAAA    IIII    NNNNNNNNNNNN  FFFFFFFF    **********  KKKKKKKKKK
BBBBBBBB    RRRRRRRR    AAAAAAAAAA    IIII    NNNNNNNNNNNN  FFFFFFFF    **********  KKKKKKKKKK
BBBB  BBBB  RRRR  RRRR  AAAA  AAAA    IIII    NNNN  NNNNNN  FFFF            **      KKKK    KKKK
BBBB  BBBB  RRRR  RRRR  AAAA  AAAA    IIII    NNNN  NNNNNN  FFFF            **      KKKK    KKKK
BBBBBBBB    RRRR  RRRR  AAAA  AAAA  IIIIIIII  NNNN    NNNN  FFFF        **  **  **  KKKK    KKKK
BBBBBBBB    RRRR  RRRR  AAAA  AAAA  IIIIIIII  NNNN    NNNN  FFFF        **  **  **  KKKK    KKKK

Ungolfed EBF कोड:

;;;; Multiply 
;;;; Takes a digit x and ASCII art on STDIN
;;;; Prints ASCI art scaled x times
;;;; Usage:
;;;; bf ebf.bf < multiply.ebf >multiply.bf
;;;; bf multiply.bf

;;; Memory map for this program
:zero
:str
:flag
:tmp
:dup    
:num

;;; Macros

;; EOL support. Comment out the body of the two 
;; macros below to only support 0 and no change
;; Some interpreters use -1
{eol_start
  +(- 
}

{eol_end 
   )
}

;; macro that reads a digit.
;; the actual number is one more than input
;; ^12 uses 3 cells from origin
{read_number
  ,                    ; read char
  ^1 3+(-^2 4+(-^ 4-)) ; reduce by 3*4*4=48
}

;; duplicate current element
;; to the left using the right as tmp
{copy_left 
  (-^1+)^1(-^0+<+)
}

;; Duplicate char n times while
;; shifting to the right
{handle_char
  $str(-$tmp+)               ; copy the char to tmp
  $dup(-$num(->+)            ; for each dup move num
        $dup(-$num+)         ; and dup one step to the right
        $tmp(-$dup+$str+)    ; and copy the char back to str and to dup
        @flag)               ; which is the new tmp (it gets shifted to the right)
  $tmp(-)                    ; clear char when done
}

{handle_linefeed
  $dup(-                     ; for each dup
    $zero[<]>                ; go to beginnning of string
    [.>]@str                 ; print string 
    $tmp.                    ; print newline
  )
  $zero[-]<[-]>@zero         ; clean last two chars
  $tmp(-)                    ; remove line feed
}


;;; Main program 

;; read number
$tmp &read_number
$tmp (-$dup+$num+)
;$tmp,[-] ; uncomment to require a newline before asci art
$flag+(-
  $str = ,
  ( ;; NB! The line containing EOF will not be printed!
    &eol_start
    $flag 10+(-$str-$tmp+)
    if $str is not linefeed (   
       &handle_char
    ) $tmp ( linefeed
       &handle_linefeed
    ) 
    $num &copy_left      ; we need two copies of the duplicate dupber
    $flag+               ; flag to 
    &eol_end
  )  
)

1

Rebol - 87 79

r: do input while[d: input][forskip d r[insert/dup d d/1 r - 1]loop r[print d]]

अच्छी तरह से स्वरूपित संस्करण:

r: do input

while [d: input] [
    forskip d r [insert/dup d d/1 r - 1]
    loop r [print d]
]

उपयोग उदाहरण:

rebol -qw --do 'Rebol[]r: do input while[d: input][forskip d r[insert/dup d d/1 r - 1]loop r[print d]]' <<< "3
ab
cd"
aaabbb
aaabbb
aaabbb
cccddd
cccddd
cccddd

एनबी। यह कोड इस समय केवल Rebol 2 में काम करता है ( इस्तेमाल किया गया INPUT फ़ंक्शन अभी तक Rebol 3 में पूरी तरह से लागू नहीं हुआ है)।


1

आर , 125 बाइट्स

function(s,n,x=utf8ToInt(s),m=matrix(x[u<-x!=10],,sum(!u)+1))for(i in 1:ncol(m))cat(rep(intToUtf8(rep(m[,i],e=n)),n),sep="
")

इसे ऑनलाइन आज़माएं!

स्ट्रिंग को UTF8 में परिवर्तित करता है, एक मैट्रिक्स में डालता है, जिसके कॉलम टेक्स्ट की लाइनें (नईलाइन्स को हटाते हैं), और फिर नए वर्णों द्वारा अलग किए जाने से पहले प्रत्येक चार और उत्पन्न लाइनों को दोहराता है।


वैसे 1K को बधाई! :-)
Giuseppe

ty :-)! अधिकांश प्रश्नों के उत्तर और कुछ प्रश्नों के एकाधिक उत्तर भी देखना बहुत अच्छा है।
JayCe

0

आर - 89

M=function(I,N) cat(paste(lapply(lapply(strsplit(I,""),rep,e=N),paste,collapse=""),"\n"))

I <- c("aa  aa  aa", "bbb bbb bbb", "c c c c c c")
N <- 3

I
# aa  aa  aa
# bbb bbb bbb
# c c c c c c"

M(I,N)

# aaaaaa      aaaaaa      aaaaaa 
# bbbbbbbbb   bbbbbbbbb   bbbbbbbbb 
# ccc   ccc   ccc   ccc   ccc   ccc

दिलचस्प लग रहा है। लेकिन मुझे एक त्रुटि मिलती है: "त्रुटि: फ़ंक्शन" str_split "नहीं मिल सका।" क्या मुझे स्पष्ट रूप से अपने कोड को चलाने में सक्षम होने के लिए स्ट्रिंग पैकेज स्थापित करने की आवश्यकता है ? (क्षमा करें, आर। से परिचित नहीं हैं)
मैनटवर्क

क्या इसे catस्टडआउट के रूप में मुद्रित करने के लिए कॉल याद नहीं है ? इसके अतिरिक्त स्ट्रिंग के प्रत्येक तत्व को केवल लंबाई में n बार दोहराया नहीं जाना चाहिए, बल्कि चौड़ाई में भी दोहराया जाना चाहिए।
प्लेनैपस

आप अपने फ़ंक्शन को थोड़ा और अधिक गोल्फ कर सकते हैं: <-हो सकता है =, paste0यहां से इसे बदला जा सकता है pasteक्योंकि आप वैसे भी पतन तर्क का उपयोग कर रहे हैं और तर्क eachको छोटा किया जा सकता है e। R. के साथ गोल्फिंग पर कुछ बुनियादी विचारों के लिए यहां देखें
plannapus

अन्यथा, यह एक अच्छा प्रयास है (मेरा अपना सबसे छोटा प्रयास अभी भी 200 वर्णों में है :))
प्लेनैपस

@manatwork ठीक है, अब और wihtout लोड हो रहा है कोई त्रुटिstringr
petermeissner

0

MATLAB: 20 ​​अक्षर

['' imresize(ans,n)]

यह समाधान मानता है कि छवि को एक फ़ाइल में संग्रहीत किया जाता है, जिसे कॉल किया जाता है startup.mऔर इसे कॉल करते समय मैटलैब की प्रतिकृति की मात्रा देने की अनुमति दी जाती है, यह निम्न तरीकों से किया जा सकता है:!matlab -r "n=3"&

MATLAB, बिना तर्क के कॉल: 23 वर्ण

load;['' imresize(s,n)]

पहले समाधान के विपरीत, बाद के दो मानते हैं कि कॉल में प्रतिकृति की मात्रा की उम्मीद नहीं की जा सकती है। इन समाधानों के लिए मूल स्ट्रिंग और संख्या matlab.matआपकी वर्तमान निर्देशिका में एक फ़ाइल में अपेक्षित है ।

MATLAB, गणितीय विकल्प: 27 वर्ण

load;['' kron(s,ones(1,n))]

0

C # (177)

public string e(string i,int x){return string.Join("",i.Split('\n').Select(a=>string.Join("",Enumerable.Repeat(string.Join("",a.ToCharArray().Select(c=>new string(c,x))),x))));}

उम्मीद है कि इनपुट स्ट्रिंग "i" में नई लाइनें "\ n" होंगी जैसा कि सीमांकक है।

प्रारूपित

public string e(string i, int x)
{
    return string.Join("", i.Split('\n').Select(a => string.Join("", Enumerable.Repeat( string.Join("", a.ToCharArray().Select(c => new string(c, x))), x))));
 }

0

CJam, 14 बाइट्स

CJam इस चुनौती से नया है (और मुख्य विशेषता जो मैं वास्तव में उपयोग कर रहा हूं, वास्तव में बहुत हाल ही में है), इसलिए यह उत्तर स्वीकार किए जाने के लिए योग्य नहीं होगा - लेकिन यह वैसे भी APL को हरा नहीं रहा है, इसलिए ...

l~qN/1$e*fe*N*

इसका परीक्षण यहां करें।

व्याख्या

नए के साथ e*जो प्रत्येक चरित्र को एक स्ट्रिंग में दोहराता है, यह वास्तव में सीधा है:

l~             e# Read and eval the scale factor.
  qN/          e# Read the rest of the input as the ASCII art and split into lines
     1$e*      e# Copy the scale factor and repeat each line by it.
         fe*   e# Repeat the characters in each line by the scale factor.
            N* e# Join with newlines.

मुझे एहसास है कि यह एक पुराना उत्तर है, लेकिन आप इसके बजाय एक फंक्शन का उपयोग करके एक बाइट को बचा सकते हैं:{N/1$fe*e*N*}
5:49 में फल

0

RProgN 100 बाइट्स (विंडोज) गैर-प्रतिस्पर्धात्मक

'l' asoc
'i' asoc
i '[^
]' '%0' l rep replace '[^
]*' '%0
' l rep 'z' asoc z 1 z len 1 - sub replace

RProgN में वर्ण लिखने से बच नहीं जाता है, जिससे किसी भी नई लाइन को संभालने के लिए एक भौतिक नई लाइन की आवश्यकता होती है। जैसे, इस उत्तर (और किसी भी इनपुट) में केवल LF के बजाय CRLF का उपयोग करना है। :(

साथ ही, इस चुनौती के जारी होने के बाद ही 'प्रतिनिधि' समारोह जोड़ा गया, जैसे, यह गैर-प्रतिस्पर्धात्मक है।


0

विम, 39 कीस्ट्रोक्स (इनपुट को छोड़कर, प्रतिस्पर्धा नहीं)

गोच और कारण यह प्रतिस्पर्धा नहीं है क्योंकि इनपुट को दो बार दर्ज करना होगा। 2अपने इनपुट के साथ दोनों को बदलें ।

qayl2phxl@aquu:%norm @a<cr>gg0qbyy2P2jkddj@bq@b

व्याख्या

  • qayl2phxl@aquuएक मैक्रो को रिकॉर्ड करता है जो एक चरित्र को yanks करता है, इसे पेस्ट करता है और अगले एक पर ले जाता है, फिर खुद को फिर से देखता है। फिर यह परिवर्तनों को समाप्त कर देता है। क्योंकि हम चाहते हैं कि लूप अनंत न हो, हम चरित्र को नष्ट नहीं करते हैं, जिसका अर्थ है कि हमें बाहरी को हटाना होगा, लेकिन फिर भी एक आंदोलन के साथ समाप्त होता है जो अंतिम चार पर विफल रहता है।
  • :%norm @a<cr> हर लाइन पर मैक्रो चलाता है
  • gg0 बहुत शुरुआत में लौटता है
  • qbyy2P2jkddj@bq@b@aप्रत्येक पंक्ति को कॉपी करने के लिए एक ही तकनीक का उपयोग करता है , लेकिन एक पुनरावर्ती मैक्रो के साथ।

मुझे पता है कि इसे अधिक दोहराया जा सकता है, उदाहरण के लिए लाइन के दोहराव के लिए पीछे की ओर खींचकर लेकिन कई इनपुट प्रविष्टि की आवश्यकता के कारण, मैं वहां रुकूंगा और इस उत्तर को गैर प्रतिस्पर्धा के रूप में चिह्नित करूंगा।

पिछला उत्तर (32 कीस्ट्रोक्स, केवल युगल)

qaylpl@aqu:%norm @a<cr>:%s/.*/&\r&<cr>

व्याख्या

  • qaylpl@aquएक मैक्रो को रिकॉर्ड करता है जो एक चरित्र को यैंक करता है, उसे पेस्ट करता है और अगले एक पर ले जाता है, फिर खुद को फिर से देखता है। परिवर्तन पूर्ववत करें।
  • :%norm @a<cr> हर लाइन पर मैक्रो चलाता है
  • :%s/.*/&\r&<cr> हर लाइन को दोगुना करता है

मैं एक नेस्टेड मैक्रो करना चाहता था, लेकिन भीतर वाला (अक्षर) बाहरी एक (लाइनों) को रोकता है ... इसलिए मुझे दो कमांड चलाना होगा, अन्यथा एक सरल समाधान में काफी कीस्ट्रोक्स जोड़ते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.