सभी अल्फ़ान्यूमेरिक वर्ण और अंडरस्कोर प्रिंट करें


37

एक प्रोग्राम या फ़ंक्शन लिखें जो किसी भी क्रम में अल्फ़ान्यूमेरिक वर्णों और अंडरस्कोर के एक स्ट्रिंग को प्रिंट या वापस करता है । सटीक होने के लिए, निम्न वर्णों का आउटपुट होना आवश्यक है, और नहीं :

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_

जब स्टडआउट पर प्रिंट किया जाता है, तो आपके आउटपुट की अनुमति के बाद एक वैकल्पिक अनुगामी नई रेखा।

निर्मित स्थिरांक जिसमें 9 या अधिक उपरोक्त वर्ण होते हैं, उन्हें अस्वीकृत कर दिया जाता है।


बाइट्स में सबसे छोटा कोड जीतता है।

यह एक बहुत ही सरल चुनौती है, जो मुझे लगता है कि फिर भी कुछ दिलचस्प जवाब पैदा करेगा।


लीडरबोर्ड

यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।

यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:

# Language Name, N bytes

Nआपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:

# Ruby, <s>104</s> <s>101</s> 96 bytes

यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फ़ाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक अंक अंतिम संख्या है:

# Perl, 43 + 2 (-p flag) = 45 bytes

आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


2
टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
डेनिस

जवाबों:


11

उत्तल, 9 बाइट्स

नई विधि! इसके अलावा, मुझे एहसास हुआ कि यह लुइस के उत्तर के रूप में बिल्कुल वैसा ही है, जैसा कि कन्वेक्स में है, लेकिन मैं इसे स्वतंत्र रूप से लेकर आया हूं।

'{,®\W"Oò

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

स्पष्टीकरण:

'{,           Array of chars from NUL to 'z
   ®\W"       Regex to match non-word characters
       Oò     Replace all matches with emtpy string

पुराना घोल, 10 बाइट्स:

A,'[,_¬^'_

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

स्पष्टीकरण:

A,          0-9
'[,_¬^      A-Za-z
'_          _

1
@ mbomb007 हाँ यह CJam कोड के समान हैA,'[,_el^'_
GamrCorps

यह कौन सा एन्कोडिंग है?
कॉनर ओ'ब्रायन

@ C @O'Bʀɪᴇɴ CP-1252 या Windows-1252
GamrCorps


12

पर्ल, 20 बाइट्स

आवश्यक -Eकोई अतिरिक्त कीमत पर।

say+a.._,A.._,_..9,_

तो, मेरा मूल उत्तर (नीचे) थोड़ा उबाऊ था। केवल एक चीज जिसे मैंने ऊपर आने में कामयाब किया है, वह ठीक यही है, लेकिन थोड़ा और अधिक भ्रामक लगता है ... यह बहुत ही नीचे के बराबर है:

say a..z,A..Z,0..9,_

मुझे टिप्पणियों में @ msh210 के सुझाव पसंद हैं , लेकिन वे अभी बहुत लंबे हैं!


1
+1। थोड़ा और दिलचस्प लेकिन अब इनमें से कोई भी है, सभी 27 बाइट्स: say grep/\w/,map chr,1..122|| say map{chr=~/\w/;$&}1..122|| say map{chr=~s/\W//r}1..122
msh210

1
@ msh210 अभी भी इसे और अधिक छोटा नहीं कर सकता है ... प्रबंधित एक 25 हालांकि: say chr=~/\w/g for 1..255...
डोम हेस्टिंग्स

10

चेडर, 31 27 बाइट्स

->97@"123+65@"91+48@"58+"_"

यह @"ऑपरेटर को अच्छी तरह से दिखाता है

गैर-पूरा होने के कारण मैं अंततः @"ऑपरेटर को ठीक करने के लिए तैयार हो गया । बग यह था कि यह एक जेएस रेंज नहीं एक चेडार रेंज पैदा कर रहा था ताकि यह ठीक से काम न कर सके


व्याख्या

@"ऑपरेटर द्वारा @ CᴏɴᴏʀO'Bʀɪᴇɴ डिजाइन किया गया था, तथा उसके द्वारा एलएचएस से आरएचएस के लिए एक स्ट्रिंग रेंज उत्पन्न है। जब एक एकीकृत ऑपरेटर के रूप में उपयोग किया जाता है, तो यह दिए गए कोड बिंदु (जैसे अजगर chr) पर चार रिटर्न देता है

Ungolfed

->
  97 @" 123 +
  65 @" 91  +
  48 @" 58  +
  "_"

10

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

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

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

टेप को 3 · 2 n पर आरंभ करता है, और वहां से काम करता है।

+++[[<+>->++<]>]    initialize the tape
                    |   0 |   3 |   6 |  12 |  24 |  48 |  96 | 192 | 128 |   0 |   0 |
                                                                                    ^
<<[-<->]            subract 128 from 192
                    |   0 |   3 |   6 |  12 |  24 |  48 |  96 |  64 |   0 |   0 |   0 |
                                                                        ^
<<-.+<<++           ouput '_'; increment 24 twice
                    |   0 |   3 |   6 |  12 |  26 |  48 |  96 |  64 |   0 |   0 |   0 |
                                                ^
[->>+.>+.<<<]       output aAbBcC ~ zZ
                    |   0 |   3 |   6 |  12 |   0 |  48 | 122 |  90 |   0 |   0 |   0 |
                                                ^
<--[->>.+<<]        decrement 12 twice; output 0 ~ 9
                    |   0 |   3 |   6 |   0 |   0 |  58 | 122 |  90 |   0 |   0 |   0 |
                                          ^

9

जावास्क्रिप्ट (ईएस 6), 62 बाइट्स

_=>String.fromCharCode(...Array(123).keys()).replace(/\W/g,'')

रिटर्न करता है 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz, इसलिए केवल 6 बाइट्स एक फ़ंक्शन से छोटे होते हैं जो स्ट्रिंग शाब्दिक रिटर्न देता है। हाँ, यह बेकार है।


आप एक स्ट्रिंग खोजने की कोशिश कर सकते हैं जिसके btoaलिए आवश्यक आउटपुट देता है।
अक्टूबर को gcampbell

@gcampbell 60! (60 भाज्य) तार खोजने में थोड़ा समय लग सकता है ...
नील

आप बस इस्तेमाल कर सकते हैं atob
13 अक्टूबर को gcampbell

@gcampbell मुझे किसी तरह अप्राप्य तार को बाहर करना होगा।
नील

@gcampbell यह पता चला है कि btoa संस्करण को वैसे भी 62 बाइट्स लगते हैं: 45 को 60 अल्फ़ान्यूमेरिक्स, 3 अनएन्कोडेड वर्ण (सहित _) और 14 के लिए _=>atob("")+""
नील

9

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

'_':['a'..'z']++['A'..'Z']++['0'..'9']

यहाँ समझाने के लिए कुछ नहीं।


2
प्रश्न: क्या अंतर है :और ++?
डाउनगेट

3
@Downgoat: ++दो तार लेता है और उन्हें समेटता है। :चार और स्ट्रिंग लेता है और स्ट्रिंग के सामने चार को रखता है। "_"++['a'..'z']...भी काम करता है, लेकिन एक बाइट लंबी है।
नीमी

8

PowerShell v3 +, 35 33 बाइट्स

-join([char[]](1..127)-match'\w')

एक गतिशील सरणी का निर्माण करता है 1..127, इसे एक charसरणी के रूप में रखता है। यह -matchरेगेक्स पर काम करने वाले ऑपरेटर को खिलाया जाता है \w, जो मैच के सभी तत्वों (यानी, बिल्कुल अल्फ़ान्यूमेरिक और अंडरस्कोर) को लौटा देगा। हम उन सरणी तत्वों -joinको एक स्ट्रिंग के रूप में बंडल करने के लिए इनकैप्सुलेट करते हैं । यह पाइपलाइन पर छोड़ दिया गया है और आउटपुट निहित है।


1
अरे, यह उचित नहीं है। मेरा खुद का समाधान समान है सिवाय इसके कि मैंने शुरू किया 0...
जॉय

@ जॉय गोट्टा जल्दी जाओ। : D
AdmBorkBork

विशेष रूप से तुच्छ और स्पष्ट समाधानों के लिए, मुझे लगता है ;-)
जॉय

7

वी, 27 बाइट्स

i1122ñYpñvHgJ|éidd@"Í×

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

यह उत्तर बहुत ही जटिल है। मैं बाद में एक स्पष्टीकरण पोस्ट करूँगा।

Hexdump:

00000000: 6916 1631 1b31 3232 f159 7001 f176 4867  i..1.122.Yp..vHg
00000010: 4a7c e969 6464 4022 1bcd d7              J|.idd@"...

स्पष्टीकरण:

पठनीय:

i<C-v><C-v>1<esc>                                   "Insert the text "<C-v>1"
                                                    "<C-v> means "literal"
                 122ñ       ñ                       "122 times,
                     Yp                             "Duplicate this line
                       <C-a>                        "And increment the first number on this line
                             vHgJ                   "Join every line together
                                 |éi                "Insert an 'i' at the beginning of this line
                                    dd              "Delete this line
                                      @"<esc>       "And execute it as V code.
                                                    "That will generate every ascii value from 1-123
                                             Í×     "Now remove every non-word character.

5
: D: D: D Cheddar को एक गोल्फ लैंग के साथ बांधा गया है!
22 सितंबर को डाउनगेट

7

जे, 30 29 28 बाइट्स

यादृच्छिक के लिए एक बाइट धन्यवाद बचा लिया!

~.u:95,;48 65 97+i."*10,,~26

आउटपुट:

   ~.u:95,;48 65 97+i."*10,,~26
_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

व्याख्या

मैं प्रति से अधिक स्पष्टीकरण प्रदान नहीं करूंगा, लेकिन मध्यवर्ती परिणाम प्रदान करूंगा।

   10,,~26
10 26 26
   i. b. 0
1 _ _
   *  b. 0
0 0 0
   i."* b. 0
   i."*2 3 4
0 1 0 0
0 1 2 0
0 1 2 3
   i. 2
0 1
   i. 3
0 1 2
   i. 4
0 1 2 3
   i."*10,,~26
0 1 2 3 4 5 6 7 8 9  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
   0 1 2 + i."*10,,~26
0 1 2 3 4 5 6 7  8  9  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
1 2 3 4 5 6 7 8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
   48 65 97+i."*10,,~26
48 49 50  51  52  53  54  55  56  57  48  48  48  48  48  48  48  48  48  48  48  48  48  48  48  48
65 66 67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
   ;48 65 97+i."*10,,~26
48 49 50 51 52 53 54 55 56 57 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
   95,;48 65 97+i."*10,,~26
95 48 49 50 51 52 53 54 55 56 57 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 ...
   u:95,;48 65 97+i."*10,,~26
_01234567890000000000000000ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
   ~.u:95,;48 65 97+i."*10,,~26
_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

6

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

do(x,y)<-zip"aA0_""zZ9_";[x..y]

अभिव्यक्ति zip "aA0_" "zZ9_"समापन बिंदुओं की सूची देती है [('a','z'),('A','Z'),('0','9'),('_','_')]doअंकन प्रत्येक लेता (x,y)समावेशी करने के लिए \(x,y)->[x..y]और परिणाम कोनकैटेनेट्स किया गया। के doबजाय के साथ दो बाइट्स के लिए एंडर्स कसेगोर के लिए धन्यवाद >>=

विकल्पों की तुलना करें:

do(x,y)<-zip"aA0_""zZ9_";[x..y]

zip"aA0_""zZ9_">>= \(x,y)->[x..y]
f(x,y)=[x..y];f=<<zip"aA0_""zZ9_"
id=<<zipWith enumFromTo"aA0_""zZ9_"
[c|(a,b)<-zip"aA0_""zZ9_",c<-[a..b]]
f[x,y]=[x..y];f=<<words"az AZ 09 __"

2
doसंकेतन दो बाइट्स बचाता है:do(x,y)<-zip"aA0_""zZ9_";[x..y]
एंडर्स कासोर्ग

4

सी, 50 बाइट्स

f()बिना किसी तर्क के बुलाओ ।

f(n){for(n=128;--n;)isalnum(n)|n==95&&putchar(n);}

प्रिंटों

zyxwvutsrqponmlkjihgfedcba_ZYXWVUTSRQPONMLKJIHGFEDCBA9876543210

1
isalnum(n)|n==95&&putchar(n)
orlp

वहां यूबी है। आपने आवश्यक तर्क पारित नहीं किए।
शुक्र

@orlp - आप के putcबजाय इस्तेमाल किया putcharputcएक धारा के रूप में अच्छी तरह से लिखने के लिए उम्मीद है, जो आप पारित नहीं किया था। फ़ंक्शन स्वयं ठीक काम करता है ( putcपूरी तरह से हटाने की कोशिश करें , और यह काम करता है)।
उल्लू

@owacoder उफ़!
orlp

1
@QPaysTaxes यह गलत है। If the number of arguments does not equal the number of parameters, the behavior is undefined.6.5.2.2/6, देख N1570
वेन

4

/// , 63 बाइट्स

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_

यह वैध उत्तर कैसे है? ऐसा लगता है कि यह नियमों का उल्लंघन कर रहा है।
निकेल

@nicael कौन सा नियम?
लीक नन

"अंतर्निर्मित स्थिरांक जिसमें 9 या उससे अधिक वर्ण होते हैं, वे अस्वीकृत हैं।" ... क्या मुझे कुछ स्पष्ट याद आ रहा है, @ लीक?
nicael

4
हां, यह किसी भी निर्मित स्थिरांक का उपयोग नहीं किया है।
लीक नन

ठीक है, लेकिन यह कम से कम अजीब है। निश्चित रूप से ओपी आपको अनुक्रम को कॉपी-पेस्ट करने के लिए नहीं कहता है, यह दिलचस्प नहीं है।
निकेल

4

पायथन 3, 58 बाइट्स

print('_',*filter(str.isalnum,map(chr,range(123))),sep='')

एक पूरा कार्यक्रम जो STDOUT को प्रिंट करता है।

आउटपुट है: _0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

यह काम किस प्रकार करता है

map(chr,range(123))       Yield an iterator containing all ascii characters with
                          code-points in [0,122]...
*filter(str.isalnum,...)  ...keep characters if alphanumeric and unpack into tuple...
print('_',...,sep='')     ...add underscore and print all characters with no separating
                          space

Ideone पर इसे आज़माएं

यदि स्ट्रिंग स्थिरांक की अनुमति थी, तो निम्नलिखित 45 बाइट्स होंगे:

from string import*
print('_'+printable[:62])

1
print('_'+*filter(str.isalnum,map(chr,range(123))))
लीक नन

@LeakyNun एक वाक्यविन्यास त्रुटि फेंकता है। मैंने ऐसा ही कुछ करने के बारे में सोचा print('_',*filter(str.isalnum,map(chr,range(123)))), लेकिन यह रिक्त स्थान को अलग करने वाले प्रिंट करता है; ओपी ने टिप्पणियों में कहा कि '... आउटपुट में किसी भी स्थान की अनुमति नहीं है'।
बाइकिंग बाइकिंग

पायथन 2 इस दृष्टिकोण के साथ एक बाइट बचा सकता है:print''.join(filter(str.isalnum,map(chr,range(123)))),'_'
एटलसोलॉजिस्ट

4

कोडगोल्फ में मेरा पहला प्रयास!

सी #, 168 152 150 147 130 127 117 116 115 109 106 बाइट्स

for(var a='0';a<'~';a++){Console.Write(System.Text.RegularExpressions.Regex.IsMatch(a+"","\\w")?a+"":"");}

Aloisdg, AstroDan, Leaky Nun और Kevin Lau को बहुत-बहुत धन्यवाद - टिप्पणियों में सभी मदद के लिए केनी नहीं।


2
PPCG में आपका स्वागत है! सभी जगह को हटाने के लिए स्वतंत्र महसूस करें! यह भी जांच सी # में गोल्फ के लिए सुझाव कुछ सुझाव के लिए।
aloisdg का कहना है कि Monica

1
महान - मुझे 2 बाइट्स से बचाया। मैं वास्तव में इस कोडगॉल्फ को पसंद करना शुरू कर रहा हूं :)
डैनियल

1
AFAIK, \wरेगेक्स वर्ग अल्फ़ान्यूमेरिक्स को कवर करता है और यह भी _, जो "\\w"आपके रेगेक्स मैच फ़ंक्शन के लिए पर्याप्त वैध होना चाहिए ।
वैल्यू इंक

1
आपका कोड एक फ़ंक्शन या एक पूर्ण कार्यक्रम होना चाहिए न कि एक बयान। अपने कोड के प्रदर्शन को साझा करने के लिए .NetFiddle का भी उपयोग करें :)
aloisdg का कहना है कि मोनिका जूल

2
"सी # कोडगोल्फ के लिए सबसे अच्छा नहीं है" मुझे लगता है कि सी # गोल्फ को कोड करने के लिए पर्याप्त मजेदार है। मुझे लगता है कि यह एक बेहतरीन मुख्यधारा की भाषा है, जिसके साथ खेलना है। यदि आप यहां जीतने के लिए हैं, तो आप ढीले होंगे। अपने उद्देश्य को सीखने और अच्छे समय के रूप में परिभाषित करें और आप हर समय जीतेंगे।
aloisdg का कहना है कि मोनिका


4

ऑब्जेक्ट पास्कल, 85 83 73 बाइट्स

चार्ट के एक सेट का उपयोग करते हुए बस सादा वस्तु पास्कल। एक प्रक्रिया के बजाय एक पूरा प्रोग्राम लिखना 2 बाइट्स को बंद कर देता है। प्रोग्राम कीवर्ड को हटाने से 10 और बाइट्स शेव हो जाते हैं।

var c:char;begin for c in['a'..'z','A'..'Z','0'..'9','_']do write(c);end.

मैं हमेशा था और शायद ऑब्जेक्ट पास्कल के सटीक वर्गीकरण से हमेशा भ्रमित रहूंगा। टर्बो / बोरलैंड पास्कल और फ्री पास्कल निश्चित रूप से बेकार programकीवर्ड के बिना खुश हैं ।
मैनटवर्क

@manatwork मुझे नहीं पता था कि। अजीब तरह से यह अब यहाँ पास्कल प्रतिस्पर्धी बनाता है ...
hdrz

जिस भाषा के साथ मैं बड़ा हुआ हूं। मुझे पता है कि यह अभी तक मरा नहीं है ...
rexkogitans

@rexkogitans हाँ, मैंने इसे स्कूल में सीखा, लेकिन फिर पीछे से कुछ भी याद नहीं आया ... मैं अब फिर से कुछ प्रोग्रामिंग के साथ खेल रहा हूँ
hdrz

4

बैश - 47 37 बाइट्स

man sh|egrep -o \\w|sort -u|tr -d \\n

मेरे सिस्टम पर आउटपुट है:

_0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ

उपयोगी सुझाव के लिए डिजिटल ट्रॉमा का धन्यवाद।

कुछ प्रणालियों पर आप बाइट को बचाने के asciiबजाय उपयोग करने में सक्षम हो सकते हैं man sh


1
man sh|egrep -io _\|\\w|sort -u|tr -d \\n
डिजिटल ट्रॉमा

1
@DigitalTrauma धन्यवाद! प्रयोग किया गया और पता चला कि \wमैच _पहले से ही असंवेदनशील है, इसलिए इसे और भी छोटा किया जा सकता है।

envइसके बजाय man shअधिकांश वातावरण पर काम करना चाहिए। यह खान पर करता है। $ env|egrep -o \\w|sort -u|tr -d \\n-> 0123456789ABCDEFGHIKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
YSC

नहीं है J। मेरी गलती।
YSC

4

PHP, 40 बाइट्स

_0<?for(;$a++^9?$a^q:$a=A;)echo" $a"|$a;

ऑनलाइन डेमो


1
उत्कृष्टता के लिए +1। साइड नोट: PHP 7.2 पैदावार चेतावनी का उल्लेख है कि भविष्य के संस्करण अपरिभाषित स्थिरांक के लिए त्रुटियों को फेंक देंगे। :-(
टाइटस

4

रेटिना , 30 19 16 15 12 बाइट्स

मैंने इस नवीनतम संस्करण के लिए अपने मूल वर्णमाला प्रयास को संशोधित किया । प्रत्येक चरित्र एक लूप में मुद्रित होता है।

पहली पंक्ति खाली है।


;
+T\`;w`w_

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

आउटपुट:

_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

मेरे नवीनतम प्रयास से 4 बाइट्स गोल्फिंग के लिए लीक नून को धन्यवाद।


मैं कहूंगा कि wएक निरंतर 9 या अधिक आवश्यक वर्णों के रूप में गिना जाता है। आपको संभवतः दाहिने हाथ की तरफ का विस्तार करना होगा और बाईं ओर को प्रतिस्थापित wकरना होगा o। यद्यपि आप बाइट का उपयोग करके बचा सकते EOहैं dक्योंकि उनमें केवल 5 वर्ण होते हैं।
मार्टिन एंडर

wलिप्यंतरण चरण के अंदर @ mbomb007 को रेगेक्स करने के लिए कुछ भी नहीं है। यह एक शॉर्टहैंड है जो आवश्यक 63 अक्षरों की सूची में विस्तारित होता है। कम से कम मैं इस मामले के बारे में विशेष रूप से पूछना चाहूंगा, क्योंकि यह \wएक रेक्स में उपयोग करने से काफी अलग है ।
मार्टिन एंडर

3

MATL , 11 बाइट्स

7W:'\W'[]YX

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

7W     % Push  2 raised to 7, i.e. 128
:      % Range [1 2 ... 128]
'\W'   % Push string to be used as regex pattern
[]     % Push empty array
YX     % Regex replace. Uses (and consumes) three inputs: source text, regex pattern, 
       % target text. The first input (source text) is implicitly converted to char.
       % So this replaces non-word characters by nothing.
       % Implicitly display

2 कम बाइट्स:8W:'\w'XX
DJMcMayhem

2
@DrGreenEggsandIronMan धन्यवाद! लेकिन मुझे लगता है कि विभाजकों के रूप में नई कहानियों की अनुमति नहीं है। चुनौती कहती है "अल्फ़ान्यूमेरिक वर्णों की एक स्ट्रिंग और अंडरस्कोर ... और कोई और नहीं"
लुइस मेंडो

1
तो तुम क्यों नहीं कर सका 8W:'\w'XX!जो मैं कोशिश की, लेकिन काम नहीं करता है
DJMcMayhem

@DrGreenEggsandIronMan बहुत अच्छा सवाल! मुझे आप चैट में जवाब दें ताकि मैं थोड़ा और पात्रों का उपयोग कर
सकूं

3

ब्रेकीलॉग , 25 बाइट्स

"_"w9yrcw"A":"Z"ycL@l:Lcw

यह निम्नलिखित को प्रिंट करता है STDOUT:

_9876543210abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

व्याख्या

"_"w               Write "_"
9y                 Get the list [0:1:2:3:4:5:6:7:8:9]
  rcw              Reverse it, concatenate into one number, write
"A":"Z"y           Get the list of all uppercase letters
        cL         Concatenate into a single string L
          @l:Lcw   Concatenate L to itself lowercased and write

3

पायथ, 13 12 बाइट्स

s:#"\w"0rk\|

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

U + 0000 से U + 007B में सभी वर्णों को ढूँढता है जो रेगेक्स से मेल खाता है /\w/

आउटपुट 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz

वैकल्पिक दृष्टिकोण: 15 बाइट्स

ssrMc4"0:A[a{_`

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

मूल रूप से आवश्यक आधी-समावेशी श्रेणियों को उत्पन्न करता है 0-:, A-[, a-{, _-`:।


3

CJam , 15 14 11 बाइट्स

4 बाइट्स @FryAmTheEggman और @ डेनिस की बदौलत!

A,'[,_el^'_

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

A,    e# Push range [0 1 ... 9]
'[,   e# Push range of chars from 0 to "Z" ("[" minus 1)
_el   e# Duplicate and convert to lowercase
^     e# Symmetric difference. This keeps letters only, both upper- and lower-case
'_    e# Push "_".
      e# Implicitly display stack contents, without separators

3

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

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

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

विवरण:

+++++++++[>+++++>+<<-]>+++.  Goes to '0' while remembering a 9 for the 9 other numbers
[<+.>-]                      Simply prints for the next 9 characters
<+++++++>                    Moves it 7 space to the letters
>+++++++++++++               Saves a 13
[<+<+.+.>>-]                 Prints 2 char at a time while making a second '13' space
<<+++++.+>                   Moves 5, prints '_' and moves to the lowercases
[<+.+.>-]                    And again the double print

यदि मैं टिप्पणी कर सकता था, तो मुझे दूसरों के उत्तरों में सुधार करना होगा। लेकिन जब से मैं नहीं कर सकता, मैं अपनी खुद की पोस्ट कर सकता हूं। जैसा कि मैंने यह लिखना शुरू किया सबसे कम BF एक 96 लंबा था।


3

एफ #, 50 59 बाइट्स

Seq.iter(printf"%c"<<char)(95::[48..57]@[65..90]@[97..122])

आउटपुट:

_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

संपादित करें: पहली बार अंकों को याद किया

Edit2, इस हास्केल समाधान से प्रेरित यह F # स्निपेट 67 बाइट्स है।

Seq.zip"aA0_""zZ9_"|>Seq.iter(fun(x,y)->Seq.iter(printf"%c")[x..y])

आउटपुट:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_

3

Hexagony, 33

"A}_8_47<='>({a/_x.@.9!\356);');

विस्तारित:

    " A }
  _ 8 _ 4 7
 < = ' > ( {
a / _ x . @ .
 9 ! \ 3 5 6
  ) ; ' ) ;
   . . . .

आउटपुट:

aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1203568479_

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

ध्यान दें कि 0x1Aकार्यक्रम के पहले बाइट के रूप में एक अप्राप्य चरित्र है । यह विस्तारित हेक्सागोन की पहली पंक्ति को बंद की तरह बनाता है। मार्टिन ने मुझे इस चाल को दिखाने के लिए, साथ ही साथ वर्णमाला को छापने के लिए एल्गोरिथम का सुझाव देने के लिए बहुत धन्यवाद!

यह वर्णमाला के दो किनारों पर aऔर Aषट्भुज के दो किनारों पर अंक और 26 को अंक के बीच संयुक्त को छूने वाले षट्भुज के किनारे पर प्रिंट करता है । यह कुछ इस तरह दिखता है:

A \ / a
   |
   26

फिर यह एक लूप में प्रवेश करता है जो अक्षरों को प्रिंट करता है और फिर उन्हें बढ़ाता है, और फिर संख्या को घटाता है। एक पुनरावृत्ति के बाद हमारे पास होगा:

B \ / b
   |
   25

और इसी तरह। आरंभीकरण के लिए रैखिक कोड है 0x1A " A } a:। नियंत्रण प्रवाह परिवर्तनों के बाहर छोरों के लिए रैखिक कोड है ; ) ' ; ) { ( ' =:।

काउंटर शून्य पर पहुंचने के बाद, हम संख्याओं और अंडरस्कोर को प्रिंट करने के लिए एक अलग पथ का अनुसरण करते हैं। लिखा बाहर रैखिक यह है x 3 5 6 8 4 7 9 ! ; { @:। यह वर्तमान मेमोरी एज के मूल्य को 1203568479 के साथ बदलता है (ध्यान दें कि xASCII कोड 120 है), जिसमें सभी दशमलव अंक शामिल हैं। हम इस संख्या का प्रिंट आउट लेते हैं और फिर हम हेक्सागोनी की एक स्वच्छ सुविधा का उपयोग करते हैं: हम ASCII वर्ण के रूप में संख्या मॉड 256 का प्रिंट आउट करते हैं। यह सिर्फ 95 या अंडरस्कोर होता है।


3

ब्रेनफक, 114 103 98 90 76 71 बाइट्स

एक और तुच्छ (अब गैर-तुच्छ) समाधान, लेकिन यह समय BF है!

सहेजा गया 14 (!) @Primo को धन्यवाद बाइट्स।

रेंज को आगे बढ़ाने के लिए @ प्रिमो के सुझाव के लिए 4 और बाइट्स का धन्यवाद दिया, और मैंने लोअरकेस अक्षरों के लिए छपाई से पहले इंक्रीमेंट करके एक और बचा लिया।

नया (पुनरावृत्ति 4, 71):

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

पुराना (मान, 114):

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

पुराना (पुनरावृत्ति 1, 103):

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

पुराना (पुनरावृत्ति 2, 90):

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

पुराना (पुनरावृत्ति 3, 76):

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

8 बिट रैपिंग सेल और रैपिंग मेमोरी मान लेता है। मैंने इसे ऑनलाइन आज़माया

सब छपता है _AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789

पहला, यह हिस्सा

+[--[<+++++++>->+<]>-]<<

इन मूल्यों के साथ टेप को इनिशियलाइज़ करता है

[91, 70, 49, 21, 7]
                 ^

यह काम करता है क्योंकि पुनरावृत्ति संबंध मैंने मूल रूप से प्रतिरूप किया है f(x) = 7 * (3 * x + 1), पीछे। देखिए @ primo का नमस्कार, दुनिया! एक पुनरावृत्ति संबंध क्या है, इसकी व्याख्या के लिए उत्तर दें

फिर, इन मूल्यों को उपयोगी लोगों में बदलना काफी सरल है। (और अंडरस्कोर प्रिंट करें)

Code: +++<--<-<-----<++++.+

Tape: [96, 65, 48, 26, 10]
       ^

फिर, सरल लूप शेष वर्णों को मुद्रित करने के लिए मानों का उपयोग करते हैं। मैं प्रिंट से पहले वेतन वृद्धि करके 1 बाइट बचाता हूं।

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

मैं वास्तव में एक छोटे अनुक्रम पीढ़ी खोजने की जरूरत है।

मुझे एक पुनरावृत्ति संबंध मिला जो अच्छी तरह से काम करता है, लेकिन एक छोटा w / कम हंट और पेक हो सकता है।

मैंने यह जानने के लिए एक लीनियर रिग्रेशन कैलकुलेटर का उपयोग किया, जो कि सबसे कम संभव रैखिक पुनरावृत्ति संबंध होना चाहिए, इसलिए मुझे शायद कुछ और सूत्र ढूंढने चाहिए यदि मैं सुधार करना चाहता हूं।

@primo ने वास्तव में पुनरावृत्ति संबंध को बहुत सुधार दिया, धन्यवाद।


कैसे एक पीछे की ओर निर्माण के बारे में? +[--[<+++++++>->+<]>-]
प्रिमो जूल

@primo वाह! वह कैसे काम करता है?
ब्लू

3 असमान है इसलिए यह पूरे 256 बार लूप करेगा। के साथ समाप्त करके >-], आप यह सुनिश्चित कर सकते हैं कि अंतिम शब्द 1 (x7) होगा। वास्तव में, आपको शायद शुरू करना चाहिए -, यह बहुत तेजी से खत्म होता है।
प्रिमो

3

सेसोस , 17 बाइट्स

00000000: a854be 2cbc9e 71d597 14bc56 1ad99e 713b           .T.,..q....V...q;

उत्पादन

0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz_

इसे ऑनलाइन आज़माएं! उत्पन्न बाइनरी कोड को देखने के लिए डीबग की जाँच करें

यह काम किस प्रकार करता है

ऊपर की बाइनरी फ़ाइल निम्नलिखित एसएएसएम कोड को इकट्ठा करके बनाई गई है।

add 48     ; Set cell 0 to 48 ('0').
fwd 1      ; Advance to cell 1.
add 10     ; Set cell 1 to 10.
jmp        ; Set an entry marker and jump to the jnz instruction.
    rwd 1  ;   Retrocede to cell 0.
    put    ;   Print its content (initially '0').
    add 1  ;   Increment cell 0 ('0' -> '1', etc.).
    fwd 1  ;   Advance to cell 1.
    sub 1  ;   Decrement cell 1.
jnz        ; While cell 1 in non-zero, jump to 'rwd 1'.
           ; This loop will print "0123456789".
rwd 1      ; Retrocede to cell 0, which holds 48 + 10 = 58.
add 7      ; Set cell 0 to 65 ('A').
fwd 1      ; Advance to cell 1.
add 26     ; Set cell 1 to 26.
jmp        ; Set an entry marker and jump to the jnz instruction.
    rwd 1  ; Retrocede to cell 0.
    put    ; Print its content (initially 'A').
    add 32 ; Add 32 to convert to lowercase ('A' -> 'a', etc.).
    put    ; Print the cell's content.
    sub 31 ; Subtract 31 to switch to the next uppercase letter ('a' -> 'B', etc.).
    fwd 1  ; Advance to cell 1.
    sub 1  ;   Decrement cell 1.
jnz        ; While cell 1 in non-zero, jump to 'rwd 1'.
           ; This loop will print "AaBb...YyZz".
rwd 1      ; Retrocede th cell 0, which holds 65 + 26 = 91.
add 4      ; Set cell 0 to 95 ('_').
put        ; Print its content.

वाह, मैं आपके समान एक समाधान पोस्ट करने वाला था ।
लीक नून

एक जैसे दिमाग महान!
डेनिस

@LeakyNun Hm, थोड़े देर से, लेकिन ऐसा लग रहा है कि आपका 3 बाइट्स छोटा है ...
आउटगोल्फर

@EriktheOutgolfer Sesos कम कुशल तरीके से एन्कोड किया जाता था। दोनों कार्यक्रम अब 17 बाइट्स हैं।
डेनिस

@ डेनिस आह, ठीक है, टीआईओ कैश कई बार भ्रमित हो सकता है।
आउटगोल्फर

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