मेरी डिवाइस की खराबी ... इसके अपरिभाषित स्ट्रिंग व्यवहार का दुरुपयोग करें!


12

मदद! मेरी डिवाइस में खराबी है और जब भी मैं एक स्ट्रिंग को दोहराने की कोशिश करता हूं, तो मुझे एक गड़बड़ परिणाम मिलता है। एक ही स्ट्रिंग N बार दोहराने के बजाय , यह अपने प्रत्येक वर्ण के साथ एक NxN वर्ग भरता है , और चौकों को ढेर कर देता है।

उदाहरण के लिए, स्ट्रिंग "Test"और संख्या को देखते हुए , मुझे 2इसके बजाय "TestTest":

TT
TT
ee
ee
ss
ss
tt
tt

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

  • सभी मानक नियम लागू होते हैं।

  • इनपुट और आउटपुट को किसी भी उचित माध्यम से नियंत्रित किया जा सकता है।

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


परीक्षण के मामलों

इनपुट 
उत्पादन

----------

"टेस्ट", २

टीटी
टीटी
ee
ee
एस एस
एस एस
टीटी
टीटी

----------

"ऊऊ", ३

UUU
UUU
UUU
uuu
uuu
uuu
UUU
UUU
UUU

----------

"ए", ५

AAAAA
AAAAA
AAAAA
AAAAA
AAAAA

----------

आप यहां एक बड़ा परीक्षण मामला पा सकते हैं । गुड लक और मज़ा गोल्फ है!



1
क्या न्यूलाइन द्वारा अलग किए गए स्ट्रिंग के बजाय "लाइनों की सूची" वैध है?
जियोकॉवेल

21
हम्म, मैं नहीं देखता कि शीर्षक से "इसके अपरिभाषित व्यवहार का दुरुपयोग" वास्तव में कार्य में कैसे दिखता है। कोई अपरिभाषित व्यवहार नहीं है, कार्य एक विशेष रूप से परिभाषित व्यवहार को पुन: पेश करना है।
पाओलो एबरमन

3
it fills an NxN square- सही बयान नहीं।
मैजिक ऑक्टोपस Urn

जवाबों:


9

जेली , 4 बाइट्स

श्री Xcoder जेली दुरुपयोग से प्रेरित है

x⁹×Y

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

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

कैसे?

भोले (गैर-अपमानजनक) पाँच बाइट है:

x⁹x€Y - Main link: list of characters, s; number, n  e.g. "xyz", 2
 ⁹    - chain's right argument, n                         2
x     - times (repeat each element)                       ['x','x','y','y','z','z']
  x€  - times for €ach                                   [['x','x'],['x','x'],['y','y'],['y','y'],['z','z'],['z','z']]
    Y - join with newlines                                ['x','x','\n','x','x','\n','y','y','\n','y','y','\n','z','z','\n','z','z']
      - as a full program: implicit print
      -   note: this could be submitted as a dyadic link (AKA unnamed function)

श्री Xcoder द्वारा प्रयोग किया जाता दुरुपयोग (पायथन के operator.mulएक पर कार्य कर सकते strहैं और एक intको दोहराने के लिए str- यहाँ एकल वर्ण - और परमाणु जो का उपयोग करता है यह, ×, vectorises अपनी बाईं तर्क WRT) यहां इस्तेमाल किया जा सकता भी बदलने के लिए x€साथ ×- पूरा कार्यक्रम उपज :

x⁹×Y - Main link: list of characters, s; number, n  e.g. "xyz", 2
 ⁹   - chain's right argument, n                         2
x    - times (repeat each element)                       ['x','x','y','y','z','z']
  ×  - multiply (vectorises)                             ["xx","xx","yy","yy","zz","zz"]
     -     (note, these "..." are actually strings, something not usually seen in Jelly) 
    Y - join with newlines                                ["xx",'\n',"xx",'\n',"yy",'\n',"yy",'\n',"zz",'\n',"zz"]
      - implicit print

गाली के बारे में चुनौती पर हेह दुरुपयोग
को आउटगॉल्फ

9

जेली , 5 बाइट्स

यह वही है जो हमें करने के लिए कहा जाता है ... अपुष्ट व्यवहार का दुरुपयोग करें! *

×+⁷×⁴

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

* अपरिभाषित व्यवहार द्वारा मैं बार-बार ×स्ट्रिंग का उपयोग करने के बारे में बात कर रहा हूं । कभी-कभी यह सामान्य व्यवहार से छोटा होता है, तो क्यों नहीं?


धिक्कार है, मुझे एक मिनट से हरा दो!
caird coinheringaahing

@cairdcoinheringaahing मुझे लगता है कि यह गोल्फ हो सकता है, हालांकि: - /
श्री Xcoder



5

बैश + जीएनयू सेड, 58

काफ़ी मिलती-जुलती तकनीक का उपयोग करते हुए इस जवाब को वर्णन करने के कितने करीब करने के लिए एक dup किया जा रहा है यह इस सवाल यह है कि:

printf -vr %$1s
sed "s/./${r// /&}\n/g;s/\S*./${r// /&}/g"

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




3

05AB1E , 7 5 बाइट्स

स्कॉटीनेट के लिए -2 बाइट्स धन्यवाद

εײF=

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

ε     # For each character:
 ×    #   Repeat this character N times
  ²F  #   For 0 .. N:
    = #     Print without popping 

-2 बाइट्स में निहित इनपुट्स का फायदा उठाकर, बिना पॉपिंग ( =) की छपाई के vyसाथ और उसके स्थान पर ε: ऑनलाइन कोशिश करें!
19



2

सी ++, 125 123 बाइट्स

-2 बाइट्स aschepler के लिए धन्यवाद

#include<string>
using s=std::string;s u(s a,int b){s r;for(auto&c:a)for(int i=0;i<b*b;){if(!(i++%b))r+=10;r+=c;}return r;}

सुनिश्चित करें कि +=ऑपरेटर का अधिभार charइस निर्देश में एक डेटा प्रकार लेता हैif(!(i++%b))r+=10


2
using s=std::string;typedef std::string s;दो बाइट से छोटा है ।
23 अक्टूबर को aschepler

2

Japt , 7 बाइट्स

तार की एक सरणी आउटपुट।

VÆmpVÃy

इसे आज़माएं ( -Rकेवल विज़ुअलाइज़ेशन उद्देश्यों के लिए ध्वज)


व्याख्या

स्ट्रिंग Uऔर पूर्णांक का निहित इनपुट V

VÆ    Ã

से पूर्णांकों की एक सरणी उत्पन्न 0करने के लिए V-1और एक समारोह के माध्यम से एक गुजरती हैं।

mpV

मानचित्र ( m) ओवर Uऔर रिपीट ( r) प्रत्येक वर्ण Vबार।

y

स्थानांतरण और अंतर्निहित आउटपुट परिणामस्वरूप सरणी।


1

आर , 59 बाइट्स

function(S,n)write(rep(strsplit(S,"")[[1]],e=n*n),"",n,,"")

स्टडआउट को लिखता है।

स्ट्रिंग को वर्णों में विभाजित करता है, प्रत्येक n^2बार दोहराता है, और फिर चौड़ाई nऔर बिना विभाजक के साथ प्रिंट करता है।

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


1

जे, 15 14 बाइट्स

[:,/]$"1 0~[,[

सुनिश्चित करने के लिए उप-इष्टतम। 2 डी सरणी का रिटर्न देता है। nबाएँ तर्क के रूप में लेता है और स्ट्रिंग दाईं ओर।

मोबाइल पर, इसलिए सामान्य सुविधाएं गायब हैं।

व्याख्या

(पुराने उत्तर के लिए)

[:,/(2#[)$"1 0]

$"1 0 प्रत्येक वर्ण को नया आकार दें

(2#[)a n* nमैट्रिक्स।

,/ आउटपुट प्राप्त करने के लिए एक साथ मैट्रिसेस से जुड़ें।



@ शानदार शानदार! मैं कहूंगा कि व्यक्तिगत रूप से इसके स्वयं के जवाब के हकदार हैं।
कोल

@ मील्स आपका पोस्ट :)
Ven

1

पर्ल 5 , 26 + 1 (-पी) = 27 बाइट्स

$"=<>;s|.|($&x$".$/)x$"|ge

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


यह प्रत्येक वर्ण को वर्णों की एक क्षैतिज पंक्ति के साथ प्रतिस्थापित करना प्रतीत होता है, वर्णों के वर्ग के साथ नहीं।
aschepler

मुझे लगता है कि मैं इसे पहले ठीक से समझ नहीं पाया था। इसे अतिरिक्त 5 बाइट्स के साथ तय किया।
Xcali



1

ब्रेनफक, 103 बाइट्स

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

इसे ऑनलाइन आज़माएं (डायनामिक मेमोरी चालू करना सुनिश्चित करें या यह नहीं चलेगा)

नोट: इनपुट थोड़ा अलग है। यह कोड एक स्ट्रिंग में ले जाता है जहां अंतिम वर्ण दोहराव की संख्या के लिए एक अंक है। तो इनपुट की तरह लग सकता है Test5

इस कोड को एक अनबाउंड टेप की आवश्यकता होती है, और बाइट रैपिंग व्यवहार पर निर्भर करता है।

Ungolfed:

,[>,]< Take Input
>-[>+<-----]>--- ASCII 0, to use in next step
[-<<->>]<< Convert ASCII number to raw number by subtracting ASCII 0
[->+<]> Move the number over one to separate it from the phrase
[
  [->+>+<<]>>[-<<+>>]< Copy the number
  [
    <<<[<]> Back to Letter
    . Print Letter
    [>]>>- Back to Counter
  ]
  ++++++++++.[-]< Print the newline
  <<[<]>[-]> Clear Letter
  [>]> Back to Counter
]

1

SOGLOnline प्रतिबद्ध 2940dbe , 4 बाइट्स

∙ι*I

यह एक विशिष्ट कमिट के लिए बनाया गया था, अर्थात इससे पहले कि मैं इससे बदल गया, जब तार की एक सरणी पर उपयोग किया जाता है, प्रत्येक आइटम को बार-बार दोहराने के लिए प्रत्येक अक्षर x को दोहराता है। यहाँ उस संस्करण के बिना ऑनलाइन दुभाषिया है, जो देखा जा सकता है, काम नहीं करता है।

कमिट करने के लिए, इसे डाउनलोड करें , index.htmlफ़ाइल खोलें , प्रोग्राम पेस्ट ∙ι*Iमें और इनपुट में कुछ ऐसा लिखें

Test
2

स्पष्टीकरण:

∙ι*I
∙     get an array with 2nd input amount of items of the 1st input
 ι    pop one implicit input to cycle back to the number
  *   multiply horizontally each separate character
   I  rotate clockwise

अगर यह काम नहीं करता है, तो लिंक क्यों?
isaacg

@ आइसाकग अच्छा सवाल। पहले मैंने इसे लिखने का इरादा किया जो बदल गया, लेकिन भूल गया
द्विपिमा


1

APL (Dyalog) , 8 बाइट्स

दोहराव को बाएं तर्क और पाठ को सही तर्क के रूप में लेता है।

{⍺⌿⍺/⍪⍵}

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

{} एक अनाम लंबोदर जहां बाएं तर्क और सही तर्क का प्रतिनिधित्व करता है

⍪⍵ पाठ को एक-स्तंभ तालिका में बनाएं

⍺/ दोहराने बार क्षैतिज

⍺⌿ दोहराने बार खड़ी


1

जाप , 7 बाइट्स

mpV² òV

स्ट्रिंग्स की एक सरणी देता है।

इसे ऑनलाइन आज़माएं! -Rनई सूचियों के साथ सरणी में शामिल होने के लिए ध्वज के साथ।

व्याख्या

mpV² òV     Implicit input of U=string, V=number
m           Map each char in the input string to...
 pV²        Itself repeated V² times
     òV     Cut the resulting string into partitions of length V




0

कोटलिन 1.1 - 99 बाइट्स

fun s(s:String,c:Int)=s.flatMap{p->List(c,{p})}.joinToString("\n"){p->List(c,{p}).joinToString("")}

एक स्ट्रिंग के रूप में पूरे आउटपुट देता है।

1.1 के रूप में TryItOnline का उपयोग नहीं किया जा सकता है समर्थित नहीं है

परीक्षा

fun s(s:String,c:Int)=s.flatMap{p->List(c,{p})}.joinToString("\n"){p->List(c,{p}).joinToString("")}

fun main(args: Array<String>) {
    println(s("Hello World", 5))
}

यह 84 होगा यदि स्ट्रिंग्स की एक सूची आउटपुट के रूप में स्वीकार्य थी:

fun s(s:String,c:Int)=s.flatMap{p->List(c,{p})}.map{p->List(c,{p}).joinToString("")}

0

PHP, 97 बाइट्स

for($i=0;$i<strlen($s=$argv[1]);$i++)for($j=0;$j<$r=$argv[2];$j++)echo str_repeat($s[$i],$r)."
";

0

मैथेमेटिका, 49 बाइट्स

(z=#2;Grid[Column/@Table[#,z,z]&/@Characters@#])&

इनपुट

[ "टेस्ट", 4]



0

क्लोजर , 82 75 बाइट्स

#(dotimes[x(count %1)](dotimes[y %2](prn(apply str(repeat %2(get %1 x))))))

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

असम्पीडित:

#(dotimes [x (count %1)]
  (dotimes [y %2]
    (prn
      (apply str
        (repeat %2 (get %1 x))))))

संपादित करें: stdlib दोहराने फ़ंक्शन के साथ लूप के लिए प्रतिस्थापित करके अंत से कुछ वर्णों को काट दिया।


0

सी # (.NET कोर) , 68 + 18 बाइट्स

a=>n=>new int[a.Length*n].Select((x,i)=>Enumerable.Repeat(a[i/n],n))

बाइट गिनती में भी शामिल:

using System.Linq;

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

आउटपुट वर्णों के संग्रह का संग्रह है (प्रत्येक पंक्ति के लिए एक संग्रह)।

स्पष्टीकरण:

a => n =>                                // Take a string and a number
    new int[a.Length * n]                // Create new collection, 'n' times larger than 'a'
    .Select((x, i) =>                    // Replace every member with
        Enumerable.Repeat(a[i / n], n)   //     a collection of repeated character from 'a', based on index
    )
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.