इस तरह प्रिंट करें


17

एक प्रोग्राम लिखिए जो STDIN पर इनपुट लेता है और सभी लोअरकेस अक्षर (उच्चारण अक्षर सहित) 2k-1वें शब्द अपरकेस में और सभी अपरकेस अक्षर (उच्चारण अक्षरों सहित भी) 2kवें शब्द लोअरकेस में ( kएक सकारात्मक पूर्णांक है) बनाता है । कार्यक्रम को किसी भी शब्द में किसी अन्य वर्ण को प्रभावित नहीं करना चाहिए। उदाहरण के लिए, यदि स्ट्रिंग है Ook! O0k!, तो आउटपुट होना चाहिए OOK! o0k!

एक नया शब्द तब बनता है जब गैर-व्हाट्सएप चरित्र के बाद गैर-व्हाट्सएप राशि होती है। इनपुट की शुरुआत में व्हाट्सएप को नजरअंदाज किया जाना चाहिए। यदि किसी शब्द में कोई परिवर्तित वर्ण नहीं है, तो प्रोग्राम को अभी भी एक शब्द के रूप में विचार करना चाहिए और जारी रखना चाहिए।

सैंपल इनपुट्स (अलग-अलग इनपुट एक रिक्त न्यूलाइन द्वारा अलग किए जाते हैं)

Nineteen Eighty-Four (1984)

Programming Puzzles & Code Golf   - 
Hooray for Code Golf Stack Exchange!

     2be or not 2be, that is the ~~~QuEsTiOn~~~

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

नमूना आउटपुट

NINETEEN eighty-four (1984)

PROGRAMMING puzzles & code GOLF   - 
HOORAY for CODE golf STACK exchange!

     2BE or NOT 2be, THAT is THE ~~~question~~~

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

यह कोड गोल्फ, फाल्स है। मानक सीजी नियम लागू होते हैं। बाइट्स जीत में सबसे छोटा कार्यक्रम।


मुझे पूरा यकीन है कि मैंने व्हाट्सएप और गैर-अक्षर वाले पात्रों के बारे में सभी खामियों को कवर किया है, लेकिन अगर मैंने कोई चूक की है, तो कृपया मुझे बताएं।


निम्न कोड स्निपेट बनाने के लिए @Optimizer का धन्यवाद । उपयोग करने के लिए, "शो कोड स्निपेट" पर क्लिक करें, नीचे स्क्रॉल करें और "click रन कोड स्निपेट" पर क्लिक करें।


5
उच्चारण पात्रों के बारे में क्या? क्या हमें उन पर ध्यान नहीं देना है? क्या कार्यों की अनुमति है?
डाउनगेट

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

हमें किन व्हाट्सएप चरित्रों का हिसाब देना होगा? क्या हम यह मान सकते हैं कि गैर-व्हाट्सएप वर्ण मुद्रण योग्य होंगे?
डेनिस

सभी व्हाट्सएप पात्र, और हां।
आर्कटिकस

जवाबों:


4

विम स्क्रिप्ट, 22 21 बाइट्स

nm Q vEUWvEuWQ|norm Q

स्पष्टीकरण:

पहला कमांड मैप्स Q:

vEUशब्द बनाने के लिए अपरकेस पर
Wजाएं अगले शब्द पर जाएं
vEuशब्द लोअरकेस
Wअगले शब्द पर जाएं
Qपुनरावर्ती मैपिंग

और |norm Qमैपिंग निष्पादित करता है

कार्यक्रम का उपयोग

यह है कि आपको स्टिम से पढ़ने के लिए विम कैसे मिलता है :

$ vim - -c 'nm Q vEUWvEuWQ|norm Q'
Vim: Reading from stdin
This is the first line!
This is the second line!
This is the third and last line I type to check if this works!
^D

इससे यह प्रदर्शित करने वाला विम खुल जाएगा :

THIS is THE first LINE.
this IS the SECOND line.
THIS is THE third AND last LINE i TYPE to CHECK if THIS works!
~
~
~

6

GNU sed, 28

स्कोर में -rzGNU सेड में उत्तीर्ण होने के लिए +2 शामिल है ।

s/(\S+\s*)(\S*)/\U\1\L\2/g

परीक्षण उत्पादन

$ for t in 'Nineteen Eighty-Four (1984)' \
> 'Programming Puzzles & Code Golf   - 
> Hooray for Code Golf Stack Exchange!' \
> '     2be or not 2be, that is the ~~~QuEsTiOn~~~' \
> '++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.'; do
> echo "$t" | sed -zrf PRINTlikeTHIS.sed
> done
NINETEEN eighty-four (1984)
PROGRAMMING puzzles & code GOLF   - 
HOORAY for CODE golf STACK exchange!
     2BE or NOT 2be, THAT is THE ~~~question~~~
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
$ 

5

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

25 बाइट्स कोड + 1 बाइट कमांड लाइन

s/\S+/++$i%2?uc$&:lc$&/eg

इस कीड़े के एक जोड़े को ठीक करने के लिए ThisSuitIsBlackNot को धन्यवाद!

उपयोग:

perl -p entry.pl

3

अजगर, २३

jdmjbmrk=xZ!!kcdbcjb.zd

इसे ऑनलाइन आज़माएं या परीक्षण सूट चलाएं

अजगर के कार्यों lowerऔर upperकार्यों के बीच वैकल्पिक , जो हैं r...0या r...1। यह संभवतः यूनिकोड वर्णों को प्रभावित करेगा, ओपी स्पष्टीकरण के बदलने की प्रतीक्षा कर रहा है।

मुझे लगता है कि कुछ गोल्फ होना चाहिए। विशेष रूप से XOR को स्विच का उपयोग करने के लिए किस पर upper/ lowerका उपयोग किया जाना चाहिए।


यदि मैंने प्रश्न की सही व्याख्या की है, तो इनपुट A\nBप्रिंट होना चाहिए A\nb
डेनिस

यह प्रश्न की सही व्याख्या नहीं है। A new word is formed when there is a nonzero amount of whitespace after a non-whitespace character.के लिए आउटपुट A\nBहै A\NB। लेकिन ऐसा लगता है कि आपका सीजेएएम उत्तर सही निकला।
आर्कटिकस

@ डेनिस धन्यवाद, अब तय किया जाना चाहिए।
FryAmTheEggman

2

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

दोनों नियमित अभिव्यक्तियों के साथ पंगा लेने के बाद और mapथोड़ी देर के लिए, मैं एक सुंदर समाधान के साथ नहीं आ सका, इसलिए यह परिणाम है:

@a=split(" ",lc(<>));while($i<=$#a/2){@a[$i*2]=uc(@a[$i*2]);$i++;}print(join(" ", @a));

1
अच्छा समाधान है। क्या कुछ बाइट्स बचाने के लिए <STDIN> को <> से बदला जा सकता है? इसके अलावा, $ i = 0 को छोड़ दिया जा सकता है?
स्टीव

@ जल्दबाज़ी धन्यवाद; और हां, यह कि एक मामूली सुधार के साथ (एक अलग इनपुट के साथ परीक्षण किया गया था, और इसमें एक छोटी सी त्रुटि थी) अब शामिल हैं। विचारों के लिए धन्यवाद! मैं बहुत स्पष्ट, स्पष्ट कोडिंग का उपयोग करता हूं: पी
कोडफुन 64

1
@ Codefun64 पीपीसीजी में आपका स्वागत है! जैसे कि वे पर्ल में वैकल्पिक हैं, आप अधिक बाइट्स को बचाने के लिए अपने अधिकांश कोष्ठकों को छोड़ सकते हैं। lc(<>), हो सकता है lc<>और अपने बयान के लिए एक बयान संशोधक का उपयोग करके whileआप कोष्ठक को भी छोड़ सकते हैं। print$i++while$i<10बनाम while($i<10){print$i++}। वहाँ एक उपयोगी पृष्ठ है जो मुझे पर्ल में डोमिंग के लिए
डोम हेस्टिंग्स 7

2

रूबी, 56 बाइट्स

$><<gets.gsub(/\S+/){($.+=1)%2>0?$&.downcase: $&.upcase}

2

जावास्क्रिप्ट ईएस 6, 74 71 बाइट्स

.toUpperCase()और .toLowerCase()बाइट की गिनती पूरी तरह से बंद (32 बाइट्स 0.o जोड़ता है)। अधिकांश कार्य-आस-पास हालांकि अधिक बाइट्स के साथ समाप्त होते हैं

s=>s.replace(/(\S+\s*)(\S*)/g,(_,a,b)=>a.toUpperCase()+b.toLowerCase())

1

ग्रोवी, 108 125 120

System.in.eachLine{def b;it.split(" ").any{if(!it.empty)b=!b;print "${b?it.toUpperCase():it.toLowerCase()} "};println()}

उतना साफ नहीं है जितना मैं उम्मीद कर रहा था कि यह ऐसा होगा, जो मेरे ग्रूवी के जवाबों के साथ एक विषय लगता है।

  • +17 प्रमुख व्हाट्सएप के साथ व्यवहार को ठीक करने के लिए
  • -5 नई ट्रेलिंग को हटाने और .isEmpty () से .empty पर स्विच करने के लिए

 

$ cat tests.txt 
Nineteen Eighty-Four (1984)

Programming Puzzles & Code Golf   - 
Hooray for Code Golf Stack Exchange!

     2be or not 2be, that is the ~~~QuEsTiOn~~~

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
$ groovy PRINTlikeTHIS.groovy < tests.txt 
NINETEEN eighty-four (1984) 

PROGRAMMING puzzles & code GOLF   - 
HOORAY for CODE golf STACK exchange! 

     2BE or NOT 2be, THAT is THE ~~~question~~~ 

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


1

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

print(' '.join(b.lower()if a%2 else b.upper()for a,b in enumerate(input().strip().split(' '))))

आप [b.upper(),b.lower()][a%2]4 बाइट को बचाने के लिए सशर्त की जगह ले सकते हैं (यह मानते हुए कि मैंने मोबाइल पर सही ढंग से गिना है)।
पुरकाकूदरी

1

STATA, 252 बाइट्स

insheet using a.b
g b=word(v,1)
gl c=0
forv x=1/`=_N'{
loc d=1
while b[`x']!=""{
if !$c replace v=subinword(v,b,upper(b),1) if `x'==_n
if $c replace v=subinword(v,b,lower(b),1) if `x'==_n
loc ++d
replace b=word(v,`d') if `x'==_n
gl c=1-$c
}
di v[`x']
}

इनपुट को csv फ़ाइल (एक कॉलम) के रूप में कहा जाता है जिसे ab कहा जाता है

स्पष्टीकरण:

में डेटा पढ़ें (डिफ़ॉल्ट चर नाम v1 है, v से छोटा)। प्रत्येक लाइन के लिए v के पहले शब्द (स्पेस अलग टोकन) के बराबर एक नया वैरिएबल बी बनाएं। प्रत्येक पंक्ति के लिए, जबकि अगला शब्द रिक्त नहीं है (केवल उस पंक्ति पर कोई और वर्ण नहीं होता है), शब्द को वर्तमान पंक्ति में उस शब्द के ऊपरी या निचले केस संस्करण के साथ v में प्रतिस्थापित करें, जो कितने (mod 2) पर निर्भर करता है ) शब्द पहले ही मिल चुके हैं। फिर अगला शब्द प्राप्त करें और दोहराएं। इसके साथ समाप्त होने पर पूरी लाइन का प्रिंट आउट लें।


1

डेल्फी, 290 बाइट्स

program P;uses SysUtils;var s:string;i:word;w:byte;f:boolean;begin repeat readln(s);w:=0;f:=false; for I:=1 to length(s) do begin if s[i]>' ' then begin if w=0 then f:=not f;w:=1;if f then s[i]:=uppercase(s[i])[1] else s[i]:=lowercase(s[i])[1] end else w:=0 end;writeln(s)until false;end.

वास्तव में गोल्फ के लिए एक अच्छी भाषा नहीं है ...


प्रोग्रामिंग पहेलियाँ और कोड गोल्फ में आपका स्वागत है!
डेनिस

1

लुआ, 88 बाइट्स

a=io.read():gsub("%g+",function(s)m=not m return m and s:upper()or s:lower()end)print(a)

1

सीजेएम, 28 बाइट्स

q{C' >Sc'!<*X^:XCelCeu?:S}fC

मैं वर्तमान में पहले 33 ASCII / यूनिकोड वर्णों (और केवल उन) व्हाट्सएप पर विचार कर रहा हूं। मुझे यह जानने के लिए स्पष्टीकरण का इंतजार है कि यह वैध है या नहीं।

CJam दुभाषिया में इसे ऑनलाइन आज़माएं ।


1

पायथ, 17 22 बाइट्स

FGcwd=+YrG=Z%+1Z2;jdY

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


अंतरिक्ष के मामले में अग्रणी विफल रहता है लेकिन अभी भी अच्छा है।
tjbtech

यह भी एक से अधिक लाइन पर इनपुट को हैंडल नहीं करता है, और एक अनुगामी स्थान को प्रिंट करता है।
FryAmTheEggman

जब मैं कर सकता हूँ, तब मैं रिफ्लेक्टर करूँगा, धन्यवाद: D
ताली

0

सी #, 104 100 99 बाइट्स

static void Main(){string.Join(" ","".Split(' ').Select((o,i)=>i++%2==0?o.ToUpper():o.ToLower()));}

यह 79 बाइट्स के साथ है

string.Join(" ","".Split(' ').Select((o,i)=>i++%2==0?o.ToUpper():o.ToLower()));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.