पूर्ण चौड़ाई पाठ


44

पूर्ण चौड़ाई वाला पाठ वह पाठ है जिसमें हर वर्ण के बाद एक स्थान होता है, जिसमें अंतिम एक भी शामिल है। उदाहरण के लिए, इस प्रश्न का पहला वाक्य बनता है:

F u l l   w i d t h   t e x t   i s   t e x t   t h a t   h a s   a   s p a c e   a f t e r   e v e r y   c h a r a c t e r ,   i n c l u d i n g   t h e   l a s t   o n e . 

एक प्रोग्राम लिखें जो मानक इनपुट से पाठ में एक पंक्ति लेता है और इसे मानक से पूर्ण-चौड़ाई पाठ के रूप में आउटपुट करता है।

लीडरबोर्ड


6
आमतौर पर आपको फ़ंक्शंस की अनुमति भी देनी चाहिए, या आप बहुत सी भाषाओं (जैसे जावास्क्रिप्ट) को बाहर कर देते हैं।
wizzwizz4

8
हमारे पास I / O के लिए कुछ चूक हैं जो समुदाय की सहमति पर आधारित हैं। जब आप उन्हें ओवरराइड करने के हकदार होते हैं, तो I / O के लिए STDIN / STDOUT पर जोर देते हुए उत्तरों का एक गुच्छा अमान्य कर दिया जाता है (जो माना जाता है कि चूक लागू होते हैं) और कार्य को अन्य भाषाओं में असंभव बनाते हैं (उनके पास मानक धाराएँ नहीं हैं )।
डेनिस


4
@ BlueRaja-DannyPflughoeft सही है। पूर्ण चौड़ाई पाठ अंतर्निहित चरित्र एन्कोडिंग (2 बाइट्स एन्कोडेड) के बारे में कुछ भाषा (यानी ideograms) द्वारा आवश्यक है। यूनिकोड में आधे और पूर्ण आकार की धारणा को यूनिकोड ब्लॉक
लुडोविक फ्रेरोट

2
@ लुडोविकफ्रेट वास्तव में, ये विचारधाराएं नहीं हैं, ये चीनी अंग्रेजी अक्षर हैं।
एर्ग आउटफोलर जूल

जवाबों:


29

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

2 बाइट बचाने के लिए डेनिस के लिए धन्यवाद । इसके अलावा 1 बाइट बचाने के लिए FryAmTheEggman को धन्यवाद । कोड:

p⁶

स्पष्टीकरण:

p⁶   # Cartesian product with the input and the space character.

जेली एन्कोडिंग का उपयोग करता है ।

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


1
-UTF-8 में तीन बाइट्स लेता है।
जेस स्मिथ

12
@JessSmith जेली अपने स्वयं के कोड पेज का उपयोग करती है: github.com/DennisMitchell/jelly/blob/master/docs/code-page.md
एक

1
@AndN इसे उत्तर में रखें, टिप्पणी पर नहीं।
mbomb007

3
@ mbomb007 हेडर में यह सही है।
अदनान

5
@AndN नहीं, आपको अपने उत्तर में कहना चाहिए कि इसका अपना कोड पृष्ठ है। खासकर जब से यह एक नई भाषा है, इसलिए लोग अभी तक नहीं जानते हैं।
mbomb007

24

पायथन 3.5, 18 बाइट्स

print(*input(),'')

यह काम करता है क्योंकि printडिफ़ॉल्ट विभाजक एकल स्थान है।


3
print(*input(),end=' ')पोर्टेबल होगा, लेकिन यह बहुत गोल्फ नहीं है ...
डेनिस

9
एमएफडब्ल्यू मेरे पीईपी का पहला उपयोग जो मैं देख रहा हूं वह कोड गोल्फ पर है।
वैद्रेक

क्या यह अंतिम चरित्र के बाद एक स्थान है?
फल

17

हेक्सागोनी , 21 13 12 10 बाइट्स

कोड:

एक सहेजा बहुत कुछ करने के लिए बाइट्स धन्यवाद FryAmTheEggman । कोड:

P,<0/*;@.>

या अधिक पठनीय रूप में:

  P , <
 0 / * ;
@ . > . .
 . . . .
  . . .

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

स्पष्टीकरण:

हेक्सागोनी कार्यक्रम शीर्ष-बाएं कोने से शुरू होता है, तुरंत मेमोरी मान को ASCII के मान पर सेट करता है P, जो कि 80 है। उसके बाद, हम देख सकते हैं कि निम्न पथ लिया गया है:

यहाँ छवि विवरण दर्ज करें

हम देख सकते हैं कि पथ लिया है: P,<;.P/0....;*/>Pउपयोगकर्ता इनपुट के बाद , हम एक बाइट लेते हैं। यदि यह खाली है, तो निम्न शाखा ( <) हमें उत्तर पूर्व में ले जाएगी। यदि इनपुट गैर-रिक्त है, तो शाखा हमें दक्षिण पूर्व में निर्देशित करती है। उसके बाद, हम उपयोगकर्ता इनपुट का उपयोग करके आउटपुट करते हैं ;। हमने मेमोरी एज को वापस सेट कर दिया है P, जो कि 80 है। दर्पण के बाद शून्य को हमारी संख्या तक पहुंचा दिया जाता है, जिसके परिणामस्वरूप 800 हो जाता है। फिर ;इसे कमांड का उपयोग करके आउटपुट किया जाता है , लेकिन पहले इसे मोडुलो 256 लिया जाता है, जिसके परिणामस्वरूप 32 हो जाता है, जो अंतरिक्ष चरित्र है। उसके बाद, हम *कमांड का उपयोग करके मेमोरी एज को रीसेट करते हैं और शेष उपयोगकर्ता इनपुट पर लूप पर लौटते हैं। जब हम उपयोगकर्ता इनपुट के साथ काम करते हैं, तो मार्ग नॉर्थ ईस्ट को निर्देशित किया जाता है:

यहाँ छवि विवरण दर्ज करें

यह मूल रूप से @कमांड पर जाता है , जो प्रोग्राम को समाप्त करता है।

का उपयोग करते हुए Timwi की अद्भुत HexagonyColorer चित्र बनाने के लिए।


जब आप संपादित कर रहे थे, उह, मैं गोल्फ कर रहा था। उफ़। 10:P,<0/*;@.>
फ्राईमईएग्गमैन

@FryAmTheEggman Hahaha, चलो फिर एक नया विवरण बनाते हैं: पी।
अदनान

P,<<>0;@>*10 भी है, लेकिन दुर्भाग्य से मुझे नहीं लगता कि यह किसी अन्य बाइट को बंद करने में मदद करता है।
मार्टिन एंडर

@ मार्टिनबटनर ओह, यह शर्म की बात है। मुझे संदेह है कि क्या किसी अन्य बाइट को शेव करना संभव है, लेकिन यह संभव नहीं लगता है।
अदनान

क्या HexagonyColorer अब एनिमेटेड है?
फल

12

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

((:" ")=<<)

प्रयोग उदाहरण: ((:" ")=<<) "Code Golf"-> "C o d e G o l f "

प्रत्येक चरित्र cको दो तत्व सूची में मैप करें [c, space]और एक सूची में सब कुछ संक्षिप्त करें।


दिलचस्प है कि हास्केल और जैली एक ही तरह के काम कर रहे हैं, क्योंकि सूची में मोनाड एक कार्टेशियन उत्पाद के समान है।
बलास्टा

9

रेटिना , ५

.
$& 

दूसरी पंक्ति के अंत में अंतरिक्ष पर ध्यान दें।

$&के बराबर है $0इस लिंक के लिए @ mbomb007 को धन्यवाद ।

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


@FryAmTheEggman मैं उपयोग करना पसंद करता हूं $0। यह एक ही बात है, लेकिन अधिक सामान्य है।
mbomb007

रेटिना की विकी के साथ जाने के लिए यहाँ एक उपयोगी संदर्भ है: msdn.microsoft.com/en-us/library/…
mbomb007

6

जावास्क्रिप्ट, 20 बाइट्स

सरल, मैं बस यह चाहता हूं कि Array.join ने अंतरिक्ष को अंत तक जोड़ा ताकि मैं 3 बाइट बचा सकूं।

s=>[...s,``].join` `

5
[...s,``].join` ` शायद?
नील

3
इससे भी बेहतर [...s,,].join...
edc65

@ edc65 फ़ायरफ़ॉक्स या क्रोम में काम नहीं करता है? मुझे सिर्फ joinवापसी के रूप में फ़ंक्शन मिलता है , जैसा कि मुझे उम्मीद है।
15:24 पर Mwr247

@ Mwr247 शामिल होने के बाद आपको अपना बाकी कोड डालना होगा, इसीलिए मैंने एलिप्सिस (...) डाला। यह सिर्फ 1 बाइट की बचत है
edc65

@ edc65 ` `एक टिप्पणी में टाइप करने के तरीके के बारे में जानने के लिए बहुत आलसी हो सकता है ।
नील

5

> <> , 13 10 बाइट्स

3 बाइट्स @ Sp3000 की बदौलत बच गए

i:0(?;o 'o

इसे यहाँ आज़माएँ । लिंक पर क्लिक करें, फिर सबमिट करें , फिर कुछ इनपुट टाइप करें और Give दबाएं, और अंत में एनीमेशन के बिना स्टार्ट या रन के साथ प्रोग्राम चलाएं

व्याख्या

i       read a character
:       duplicate
0(      is it less than 0?
?;      if so: end program. Else:
o       output read character
 '      push all chars until matching (same) quote. Top character is a space
o       output that character, which is a space. Go back to the beginning

i:0(?;o 'o10 के लिए
Sp3000 1

वास्तव में, io 'oकाम करता है, बाहर भी गलत।
Sp3000

@ Sp3000 धन्यवाद! मैं नो-एरर संस्करण के लिए जाऊंगा (शायद आप अपना सबमिट करना चाहते हैं?)। मैं भूल गया कि आप सीधे इनपुट कर सकते हैं। बेजोड़ बोली कैसे काम करती है? क्या यह हमेशा पूर्ववर्ती चार्ट को चुनता है?
लुइस मेन्डो

1
'बस चारों ओर लपेटता है, जब तक वह इसे 'बंद करने के लिए एक और नहीं पाता है, तब तक चार को धकेलता है। इस मामले में उद्घाटन और समापन 'एस एक ही चार हैं और अधिकांश स्रोत कोड को धकेल दिया जाता है, लेकिन शीर्ष चार बस जगह होगी क्योंकि इसे अंतिम धक्का दिया गया था।
Sp3000

@ Sp3000 मिल गया। तो यह भी चक्रीय है। सुझाव और स्पष्टीकरण के लिए बहुत बहुत धन्यवाद!
लुइस मेंडो

5

जावा, 132 (System.in) या 99 (प्रोग्राम तर्क) बाइट्स

क्या आप आज रात उपरि महसूस कर सकते हैं?

class F{public static void main(String[]a){System.out.print(new java.util.Scanner(System.in).nextLine().replaceAll("(.)", "$0 "));}}
class W{public static void main(String[]a){for(char c:a[0].toCharArray())System.out.print(c+" ");}}

shooqie ने ऐसा करने के लिए 6 बाइट का छोटा तरीका निकाला, लेकिन मैं उनके दृष्टिकोण को नहीं चुराऊँगा । मैंने इसे एसटीडीआईएन और लैम्ब्डा संस्करणों के साथ प्रयोग किया है।

एक लैम्ब्डा के लिए 28 अक्षर लेकिन वह प्रोग्राम की आवश्यकता को पूरा नहीं करता है।

s->s.replaceAll("(.)","$0 ")

प्रश्न निर्दिष्ट करता है कि इनपुट STDIN से होना चाहिए।
EMBLEM

मैं तुम्हारे लिए एक जोड़ सकता है, अगर यह ठीक है।
ब्लू

मैंने अब एक एसटीडीआईएन संस्करण जोड़ा है (और चतुर रेगीप्लेक्स शूकी का उपयोग किया है)।
CAD97

आपके regex में कोष्ठक की कोई आवश्यकता नहीं है। तर्कों के बीच एक अतिरिक्त स्थान भी हटा दिया replaceAll
खुल्द्रेसैथ न'बरिया

4

क्यूबिक्स , 10 बाइट्स

क्यूबिक्स एक 2 आयामी भाषा है जो @ETHproductions द्वारा विकसित की गई है जहां कमांड एक क्यूब पर लिपटे हुए हैं। इसे ऑनलाइन आज़माएं

@.?wi^\oSo

यह एक किनारे पर है, जिसकी लंबाई 2 है

    @ .
    ? w
i ^ \ o S o . .
. . . . . . . .
    . .
    . .

एक इनपुट के साथ शुरू होता है i। प्रवाह को ^शीर्ष चेहरे पर उत्तर में पुनर्निर्देशित किया जाता है । ?यदि मान समाप्त करने के लिए नकारात्मक मोड़ छोड़ दिया @जाता है, तो शून्य दाएं wया सकारात्मक मोड़ पर स्थानांतरित होता है, फिर बाईं ओर प्रतिबिंबित होता है \। एक अनुगामी स्थान के साथ आउटपुट चरित्र oSo


4

क्यूबिक्स , 9 बाइट्स

@./.i?>So

इसे ऑनलाइन देखें!

क्यूबिक्स एक भाषा है जिसमें निर्देश क्यूब के चेहरे पर मैप किए जाते हैं। यह कार्यक्रम निम्नलिखित क्यूब नेट बनाता है:

    @ .
    / . 
i ? > S o . . .
. . . . . . . .
    . .
    . .

निर्देश सूचक शुरू होता है i, जो इनपुट से एक और चरित्र-कोड लेता है और इसे स्टैक पर धकेलता है। यदि ले जाने के लिए कोई अधिक इनपुट नहीं ?बचा है, तो आईपी को छोड़ दिया जाता है, जहां यह हिट होता है /, और ऊपर की ओर परावर्तित होता है @, जो प्रोग्राम को समाप्त करता है।

हालाँकि, यदि इनपुट शेष है, तो मान वर्ण कोड होगा। जैसा कि सभी 1 वर्ण कोड सकारात्मक हैं, ?आईपी ​​को सही बनाता है, जहां यह क्यूब के चारों ओर लपेटता है, oउस रास्ते पर गुजरता है जो चार आउटपुट करता है। यह तब हिट करता है /जो इसे लूप को वापस चारों ओर बनाता है >So, जो एक स्थान को धक्का देता है और प्रिंट करता है। iमुख्य लूप के शुरू होने तक, वापस चारों ओर लपेटने तक आईपी पश्चिम पर ले जाता है ।

1 यदि चरित्र एक अशक्त बाइट है, तो यह ?केवल एक ही स्थान को आउटपुट करते हुए, सीधे आगे ले जाने पर ध्यान नहीं देगा ।


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


1
आप एक बाइट बचा सकते हैं@.Uoi?So
मिकी

4

स्टैक्स , 2 बाइट्स

टाई जेली!

0\

इसे staxlang.xyz पर आज़माएं!

यह सब 0स्टैक को धक्का देता है और इसके साथ मानक इनपुट से स्ट्रिंग को ज़िप करता है, 0 को आवश्यक रूप से दोहराता है। Stax में, एक स्ट्रिंग में कोड बिंदु 0 को आमतौर पर 32 (स्थान) में परिवर्तित किया जाता है।

यह इतना कम है कि इसे पैक करने से ûTकुछ नहीं होता बल्कि पठनीयता कम होती है।




3

जावा, 92

class T{public static void main(String[]A){System.out.print(A[0].replaceAll("(.)","$0 "));}}

3

Awk, 7 बाइट्स

(4 वर्ण कोड + 3 वर्ण कमांड लाइन विकल्प।)

NF++

नमूना रन:

bash-4.3$ awk -F '' 'NF++' <<< 'Full width text.'
F u l l   w i d t h   t e x t . 

(कमांड लाइन विकल्प गिनती में क्या शामिल किया जाना चाहिए, इस पर कुछ असहमति है। मैंने शामिल किया है कि वास्तव में awkदुभाषिया को क्या पारित किया गया है: "-", "एफ" और "एफ" और खाली स्ट्रिंग पैरामीटर के बीच एक विभाजक। नीचे देखें। मेरा मतलब।)

bash-4.3$ od -tax1 /proc/`pidof awk`/cmdline 
0000000   a   w   k nul   -   F nul nul   N   F   +   + nul
         61  77  6b  00  2d  46  00  00  4e  46  2b  2b  00
                         ╰────────╯

3

PHP, 39 बाइट्स

echo join(' ',str_split($argv[1])).' ';

इसे कमांड लाइन से चलाएं

php fullwidth.php "Full width text is text that has a space after every character, including the last one."

https://eval.in/541179


3

38 बाइट्स कौन

1v;pr;e;#0 1;-;i;t=;ti;o;tl;" ";d;>;pf

सबसे अच्छा काम करता है जब स्ट्रिंग को कमांड लाइन पर दिया जाता है, लेकिन इसे वास्तविक समय में भी एक बार में एक चरित्र किया जा सकता है।

Ungolfed:

time_vortex
  psychic_paper read
  duplicate
  # 0 1
  -
  integer
  TARDIS =
  TARDIS if
      opening
  TARDIS landing
  # 20
paradox
pop
psychic_paper flush

3

भूलभुलैया , 10 बाइट्स

<.23.%):,>

यह एक त्रुटि के साथ समाप्त होता है, लेकिन त्रुटि संदेश STDERR को जाता है।

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

व्याख्या

यह दुर्लभ मामलों में से एक है जहां एक पूरी तरह से रैखिक कार्यक्रम संभव है। लूप स्रोत कोड संशोधन आदेशों के माध्यम से प्राप्त किया जाता है <और >, जो काम करता है क्योंकि प्रत्येक पुनरावृत्ति के बाद हम जानते हैं कि स्टैक फिर से खाली है।

< चक्रीय रूप से पूरी पंक्ति एक कोशिका को बाईं ओर बदलता है, इसलिए हम इसके साथ समाप्त होते हैं:

.23.%):,><

यह इंस्ट्रक्शन पॉइंटर (IP) को अपने साथ ले जाता है, इसलिए IP अब कोड के दाईं ओर है और इसे बाईं ओर ले जाना है। अगला, >विपरीत संशोधन करता है ताकि यह स्रोत कोड को वापस शिफ्ट कर दे

<.23.%):,>

अब हम सब कुछ शुरू होने से पहले एक एकल पुनरावृत्ति (दाएं से बाएं) पर अमल करते हैं:

,    Read a character code from STDIN, or -1 at EOF.
:)   Duplicate and increment.
%    Modulo. At EOF this will attempt a division by zero and terminate. Otherwise, we
     have n % (n+1) = n, so we're left with the input character again.
.    Print it back to STDOUT.
32   Turn the top of the stack into a 32.
.    Print it as well (a space).

3

गीमा , 5 बाइट्स

?=?\ 

नमूना रन:

bash-4.3$ gema '?=?\ ' <<< 'Full width text.'
F u l l   w i d t h   t e x t . 

मैंने पहले इस भाषा को नहीं देखा है। दुभाषिया से लिंक?
एक स्पेगेटो

माफ़ करना। पोस्ट शीर्षक में हाइपरलिंक जोड़ा गया। काफी पुराना है, लेकिन दुख की बात है कि Google कुशलता से इसे खोजने में मदद कर सकता है यदि आप जानते हैं कि नाम "सामान्य उद्देश्य मैक्रो प्रोसेसर" से आता है।
मैनटवर्क


3

एपीएल, 5 बाइट्स

∊2∘↑¨

यह प्रत्येक वर्ण के लिए स्ट्रिंग में 2 आइटम लेता है, एक स्थान जोड़ने के प्रभाव के साथ

इसे एक कार्यक्रम बनाने के लिए जो स्टड लेता है, यह बाइट्स की समान संख्या है:

∊2↑¨⎕

इसे यहाँ आज़माएँ ।



3

PHP, 31 बाइट्स

<?=chunk_split($argv[1],1," ");

कमांड लाइन तर्क से इनपुट लेता है।


3

थ्रेडेड , 45 16 बाइट्स गैर-प्रतिस्पर्धात्मक।

  B[coB]
32c   o

STDIN के माध्यम से इनपुट लेता है।

पहली पंक्ति / टेप बस STDIN से बाइट्स पढ़ता है, और उन्हें लिखता है। दूसरी पंक्ति, शुरू में एक स्पेस को स्टोर करती है 32c, फिर उसी समय जिसे अगला कैरेक्टर पढ़ा जा रहा है, उस स्पेस को आउटपुट करता है।

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


3

पायथन 2, 27 25 24 बाइट्स

lambda x:' '.join(x)+' '

रफी के जवाब से छोटा ...

-1 60919 (FlipTack) के लिए धन्यवाद।


यदि कार्यों की अनुमति है तो lambda x:' '.join(x)+' '1 बाइट कम है।
20


3

सी, 56 बाइट्स (कार्यक्रम तर्क के रूप में), 46 बाइट्स (स्टड से)

main(int a,char**b){while(*b[1])printf("%c ",*b[1]++);}

सादा पुराना सी उत्तर। एक बार संकलित करने के बाद, प्रोग्राम को एक स्ट्रिंग के साथ बुलाया जाना चाहिए क्योंकि यह पहला पैरामीटर है, रिक्त स्थान के साथ एक स्ट्रिंग को उद्धरण में संलग्न करने की आवश्यकता है। प्रारंभ पोस्ट में उदाहरण के लिए:

./prog "Full width text is text that has a space after every character, including the last one."

जो आउटपुट देगा

F u l l   w i d t h   t e x t   i s   t e x t   t h a t   h a s   a   s p a c e   a f t e r   e v e r y   c h a r a c t e r ,   i n c l u d i n g   t h e   l a s t   o n e .

समाधान जो सीधे स्टड से पढ़ता है।

main(c){while(c=~getchar())printf("%c ",~c);}

@FryAmTheEggman के लिए एक बाइट कम धन्यवाद


आवश्यकताएं थोड़ी मुखर हैं, लेकिन मेरा मानना ​​है कि आपको stdinतर्क के रूप में लेने के बजाय इनपुट को पढ़ना होगा । इसके अलावा, सी में आगे गोल्फिंग के लिए कुछ उपयोगी सुझावों के साथ एक पृष्ठ है: codegolf.stackexchange.com/q/2203/13877
जोश

@ जोश मुख्य के पैरामीटर के रूप में गिना जाता है? क्योंकि अन्यथा, जावा उत्तर सिर्फ गलत होगा, और हास्केल के बारे में इतना निश्चित नहीं है।
एसबीआई

या तो ठीक है हम अपने I / O को अनुकूल मानते हैं :) लेकिन मेरा मानना ​​है कि इसका उपयोग getchar()कम है। इसके अलावा, आपको अधिकांश सी कंपाइलरों को शामिल करने की आवश्यकता नहीं है।
फ्राईअमईएग्गमैन

@FryAmTheEggman मैं पूरी तरह से शामिल होने के लिए छोड़ दिया, मैं केवल जीसीसी के साथ परीक्षण कर सकते हैं। जब तक gcc-only ठीक है, हाँ, शेविंग शामिल है, ठीक है।
SBI

आम तौर पर, अगर यह Ideone के साथ काम करता है तो यह ठीक है :)
FryAmTheEggman


2

गंभीरता से, 7 बाइट्स

' ;,@j+

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

आदमी, कि आवश्यक स्थान को जोड़ने के लिए 3 अतिरिक्त बाइट्स जोड़े गए। इसके बिना, ,' j4 के लिए काम करेगा।

स्पष्टीकरण:

' ;,@j+
' ;      push two copies of a single space
   ,@    push input, swap
     j+  join on spaces, append a space

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