नई साइट डिजाइन!


57

जब तक आपके पास एक उपयोगकर्ता नाम नहीं है जो साइट के डिज़ाइन को संशोधित करता है (या यहां तक ​​कि अगर ऐसा है), तो आपको ध्यान देना चाहिए कि हमारे पास हमारी साइट का डिज़ाइन है!

(अभी नवंबर है)

तो, जश्न मनाने के लिए, चलो एक कार्यक्रम बनाते हैं जो इस डिजाइन को लागू करता है (ओवरसाइम्प्लीफाइड, बिल्कुल)!

तो, सबसे महत्वपूर्ण परिवर्तन हैं:

  • हमारा नया नाम अब कोड गोल्फ और कोडिंग चुनौतियां हैं
  • हमारी साइट अब डिफ़ॉल्ट नीला रंग नहीं है और इसके बजाय एक अच्छा गहरा हरा है

इसलिए, एक स्ट्रिंग दी, बदलो:

  • PPCG सेवा CGCC
  • Programming Puzzles {non-whitespace} Code Golfकरने के लिए Code Golf {same-thing} Coding Challenges(उदाहरण के लिए, Programming Puzzles + Code Golf, and Code Golf, और & Code Golfसब से बदल दिया जाएगा Code Golf + Coding Challenges, and Coding Challengesऔर & Coding Challenges
  • #abcकरने के लिए #acb(स्वैप हरे और उपाध्यक्ष के लिए नीले रंग विपरीत - बस तथ्य यह है कि हरे रंग की तार्किक नीला नहीं हो जाना चाहिए पर ध्यान न दें, लेकिन मैं रंग बदलने को मुश्किल नहीं करना चाहती)
  • #abcdefको #abefcd(ऊपर के समान)

ध्यान दें कि रंग स्वैप के लिए, आपकी ओर से कोई हेक्साडेसिमल डिजिट को स्वीकार करना चाहिए 0-9करने के लिए a-f। आप चुन सकते हैं कि हेक्स अंक के किस मामले की आवश्यकता है, लेकिन यह अनुरूप और इनपुट से आउटपुट तक समान होना चाहिए।

आपके प्रतिस्थापन केस-संवेदी हो सकते हैं, और यदि नहीं, तो कृपया निर्दिष्ट करें कि आउटपुट कैसे काम करता है।

प्रतिस्थापन तभी होना चाहिए जब स्ट्रिंग शब्द सीमाओं से घिरा हुआ हो (शुरुआत सहित #)। दूसरे शब्दों में, निर्दिष्ट प्रतिस्थापन में से प्रत्येक तब ही होना चाहिए जब मैच स्ट्रिंग के किनारे पर हो या गैर-अल्फ़ान्यूमेरिक वर्णों (दोनों तरफ) द्वारा सीमाबद्ध हो।

मानक खामियां लागू होती हैं। यह एक कोड-गोल्फ चुनौती है, इसलिए सबसे छोटा कोड जीतता है!

उदाहरण

PPCG -> CGCC
Programming Puzzles or Code Golf -> Code Golf or Coding Challenges
PPCG stands for Programming Puzzles and Code Golf and its site color is #abf -> CGCC stands for Code Golf and Coding Challenges and its site color is #afb
The color #00f is much more intense than #5568ed -> The color #0f0 is much more intense than #55ed68
Programming Puzzles and No Substitution -> Programming Puzzles and No Substitution
No Substitution and Code Golf -> No Substitution and Code Golf
Programming Puzzles and no substitution Code Golf -> Programming Puzzles and no substitution Code Golf
Code Golf and Programming Puzzles -> Code Golf and Programming Puzzles
Programming Puzzles and Programming Puzzles and Code Golf -> Programming Puzzles and Code Golf and Coding Challenges

(अंतिम परीक्षण मामले के लिए, यह ध्यान रखना महत्वपूर्ण है कि अनुवादित स्ट्रिंग का फिर से अनुवाद किया जा सकता है, लेकिन परिवर्तन बिल्कुल एक बार लागू किया जाना चाहिए )

महत्वपूर्ण अद्यतन

(साभार @tsh)

Programming Puzzles ... Code Golfप्रतिस्थापन नियम इसके अंदर अन्य नियमों (शामिल कर सकते हैं Programming Puzzles PPCG Code Golfमान्य है)। इस मामले में, आप चुन सकते हैं कि क्या नियम लागू होते हैं या नहीं, लेकिन यह निर्धारक होना चाहिए। मुझे इसकी आवश्यकता नहीं है कि आप के बीच सुसंगत रहें PPCGऔर #...क्योंकि उत्तर मेरी सूची में नियमों को लागू करने के लिए प्रतीत होते हैं, जिसके परिणामस्वरूप विसंगतियां होती हैं। यह सिर्फ एक स्पष्टीकरण है; मेरा मानना ​​है कि सभी वर्तमान उत्तर मान्य हैं।


3
सब्स्टीट्यूशन को तभी लागू किया जाना चाहिए जब सबस्ट्रिंग के आसपास या हर जगह शब्द की सीमाएं हों?
आउटगॉल्फ

1
@EriktheOutgolfer अच्छी पकड़; शब्द सीमाएं होनी चाहिए। मैं यह निर्दिष्ट करूंगा; धन्यवाद।
हाइपरनेत्रिनो

# के लिए "शब्द सीमा" को परिभाषित करें; रेगेक्स कार्यान्वयन आमतौर पर एक शब्द शुरू करने के लिए एक # पर विचार नहीं करते हैं।
20

1
ओह, मुझे लगता है कि Programming Puzzles and no substitution Code Golfकिसी को भी पकड़ा जा सकता है (भले ही हर कोई एक ही वैध रेगेक्स का उपयोग कर रहा हो)
Veskah

1
सुझाए गए परीक्षण मामलों Code Golf and Programming Puzzlesऔर Programming Puzzles and Programming Puzzles and Code Golf। @Veskah हम्म, और मुझे लगता है कि अंतिम सुझाया गया टेस्ट केस मेरे 05AB1E उत्तर में विफल रहता है, क्योंकि मेरे पास regex नहीं है ..> <<ड्राइंग बोर्ड पर वापस ..
केविन क्रूज़सेन

जवाबों:


12

रूबी -p , 165 164 159 बाइट्स

यह बहुत हद तक तलछट के उत्तर के समान था, लेकिन यह रूबी के स्ट्रिंग प्रक्षेप ([\da-f]{1,2})को दोहराकर हेक्स समूह को तीसरे रेगेक्स के भीतर मिलान करने के बजाय तीन बार फिर से पूरी चीज को दोहराने की आवश्यकता थी।

  • @ Randomdude999 से -1 बाइट।
  • -5 बाइट्स @ लीक्ली के पर्ल के समाधान से
gsub /\bPPCG\b/,"CGCC"
gsub /\bProgramming Puzzles( \S+ )(Code Golf)\b/,'\2\1Coding Challenges'
[1,2].map{|i|gsub /(^|\s)#\K#{'([\da-f]{%d})'%i*3}\b/,'\2\4\3'}

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


{1,2}लंबाई 4 या 5 के हेक्स इनपुट के साथ ब्रेक का उपयोग नहीं करता है , जैसे #aabbc? संपादित करें: यह करता है (इस उदाहरण को प्रतिस्थापित नहीं किया जाना चाहिए क्योंकि यह एक वैध हेक्स रंग नहीं है)।
randomdude999

इस मामले के लिए विफल ( -एक गैर-अल्फ़ान्यूमेरिक वर्ण है)।
निकोल

@ randomdude999 हाँ, अच्छी पकड़। उसके लिए एक चेक जोड़ा।
मूल्य स्याही

@EriktheOutgolfer हाँ, मुझे लगता है। "शब्द सीमाएँ" #एक बिट अस्पष्ट है क्योंकि /\b/इसके साथ एक और गैर-अल्फ़ान्यूमेरिक के बगल में पंजीकरण नहीं होता है, लेकिन मैंने कोई भी बाइट परिवर्तन के लिए वैसे भी परिवर्तन नहीं किया (इसके \Sसाथ प्रतिस्थापित \w)
मान इंक

क्या आप (?<!\w)मेरे साथ (^|\W)1 char के लिए अपनी जगह नहीं ले सकते
21

9

C ++ (gcc) , 270 285 283 बाइट्स

बग को इंगित करने के लिए नील को धन्यवाद ।

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

#import<regex>
#import<string>
auto f=[](auto s){typeof(s)R[][2]{"bPPCG","CGCC","bProgramming Puzzles( \\S+ )(Code Golf)","$2$1Coding Challenges","B#(?=([\\da-f]{3}){1,2}\\b)(.+?)(..??)(..??)","#$2$4$3"};for(auto r:R)s=std::regex_replace(s,std::regex('\\'+*r+"\\b"),r[1]);return s;};

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


3
लगता है #fadeऔर #facedजो यह नहीं होना चाहिए
नील

6

रेटिना 0.8.2 , 153 130 बाइट्स

\bPPCG\b
CGCC
\bProgramming Puzzles( \S+ )(Code Golf)\b
$2$1Coding Challenges
\B(#(?=([\da-f]{3}){1,2}\b).+?)(..??)(..??)\b
$1$4$3

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण के मामले शामिल हैं। सभी प्रतिस्थापन केस संवेदी हैं। मान लें कि सामान्य रेगेक्स शब्द वर्ण स्वीकार्य हैं, ताकि \B#केवल उसी शब्द से मेल खाता हो जो #किसी शब्द वर्ण का अनुसरण नहीं करता है। संपादित करें: @ बाइट के लिए 22 बाइट्स का धन्यवाद सहेजा गया।


कोशिश करो \B#(?=([\da-f]{3}){1,2}\b)(.+?)(..??)(..??)\b?
tsh

5

GNU sed -E, 198 chars

s/\bPPCG\b/CGCC/g
s/\bProgramming Puzzles( \S* Cod)e Golf\b/Code Golf\1ing Challenges/g
s/((^|\W)#[0-9a-f])([0-9a-f])([0-9a-f])\b/\1\4\3/g
s/((^|\W)#[0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\b/\1\4\3/g

उपयोग करने योग्य रनिंग sed -E 'the above'; newlines या तो शाब्दिक रूप से शामिल किया जा सकता है, या ;यदि आप चाहें तो इसके साथ प्रतिस्थापित किया जा सकता है । दोनों कार्य।

@ हायपरनेट्रिनो शब्द पर आता है कि सीमा नियम मूर्ख है। देखो मुझे #मामले में क्या करना था ।

हां, मैंने कोशिश भी नहीं की। : पी

+9 @Value इंक द्वारा


3
झंडे अब बाइट काउंट में शामिल नहीं हैं, इसलिए आप अतिरिक्त बाइट निकाल सकते हैं और -Eइसके बजाय इसे "GNU sed " कह सकते हैं ।
मूल्य इंक

@ValueInk वाघा? मैं स्पष्ट रूप से इस समुदाय के साथ बहुत लंबे समय तक संपर्क से बाहर रहा हूं ताकि इस पर ध्यान न दिया जाए। मुझे लगता है कि यह एक अच्छा नियम है। इसके अलावा, उल्लेख के लिए धन्यवाद।
21

sedरेगेक्स मिलान के \dलिए शॉर्टकट के रूप में उपयोग करने की अनुमति नहीं देता है 0-9?
randomdude999

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

@ randomdude999 मेरे मैक पर re_format (7) मैन पेज से लगता है कि sed को \ d का समर्थन करना चाहिए, लेकिन जाहिर तौर पर ऐसा नहीं है। ¯ \ _ (ツ) _ / ¯
टॉस


4

05AB1E , 123 109 105 110 114 बाइट्स

žKISå_Å¡JεÐć'#QsžhA6£«sSåP*i3äćsRJ«ë"PPCG"Qi"CGCC"]J”–±ÇÀ”DU¡ćsε”ƒËŠˆ”©¡DVćDÁ2ôεðå}ćs_P*YyÊP*i”Âïªï”«s®ý«®ìëyXì]J«

+5 बाइट्स फिक्सिंग टेस्ट केस जैसे Programming Puzzles and no substitution Code Golfऔर Programming Puzzles and Programming Puzzles and Code Golf
+4 बाइट्स फिक्सिंग के मामले जैसे color-#00f(किसी जगह के अलावा रंग / इसके चारों ओर के नए सिरे)। मेरे ध्यान में लाने के लिए @Grimy को धन्यवाद ।

अक्षर संवेदनशील। हेक्साडेसिमल मान लोअरकेस के साथ हैं abcdef; Programming Puzzles ... Code Golfशीर्षक में है; PPCGपूर्ण अपरकेस में है।

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

निश्चित रूप से नहीं काम के लिए सही भाषा .. शब्द-सीमाओं की नक़ल करना और जगह Programming Puzzles \S+ Code Golfहै, लेकिन नहीं Code Golf \S+ Programming Puzzlesया Programming Puzzles \S+ \S+ Code Golfकिसी भी regexes के बिना बहुत मुश्किल (कम करने के लिए) .. है>।>

स्पष्टीकरण:

žK                # Push "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
                  # (NOTE: if '_' also count as word boundary, use `žj` instead)
  IS              # Push the input as a list of characters
    å_            # Check for each character if they are NOT in the string
      Å¡          # Split the (implicit) input on truthy values
        J         # Join each inner character list to a string again
ε                 # Map each word to:
 Ð                #    Triplicate the word
  ć               #    Extract head; push remainder and head separately to the stack
   '#Q           '#    Check if the head equals "#"
    žh            #    Push string "0123456789"
      A6£«        #    Append the first 6 letters of the alphabet: "0123456789abcdef"
   s      sSåP    #    Check if the characters of the remainder are all in this string
   *i             #    If both are truthy:
     3ä           #     Split the 'word' into three parts
                  #      i.e. "#ab12cd" → ["#ab","12","cd"]
       ćs         #     Extract head, and swap
         R        #     Reverse the remainder list
          J«      #     Join them together, and merge them to the head again
    ë"PPCG"Qi     #    Else-if the word is "PPCG":
     "CGCC"       #     Push "CGCC"
                  #    (Implicit else:
                  #      Use the word that's still there from the initial triplicate)
]                 # Close all if statements and the nested map
 J                # Join the mapped words together again
”–±ÇÀ”            # Push dictionary string "Programming Puzzles"
      DU          # Save a copy in variable `X`
        ¡         # Split the string by this
         ćs       # Extract head & swap; pushing head and remainder to the stack
ε                 # Map each substring `y` in the remainder to:
 ”ƒËŠˆ”           #  Push dictionary string "Code Golf"
       ©          #  Save it in variable `®` (without popping)
        ¡         #  Split the current substring we're mapping by it
         DV       #  Save a copy of this list in variable `Y`
           ćD     #  Extract the head and duplicate
                  #  (so the stack is: remainder, head, head)
 Á                #  Rotate the characters in the head-string once towards the right
  2ô              #  Split it into parts of size 2
    εðå}          #  Check in each part if it contains a space
        ćs        #  Extract head and swap again
          _       #  Check if all values are 0
           P      #  And check if this is truthy for all
          *       #  And check if this is truthy, as well as the head
                  #  (this means the current string has a leading and trailing space,
                  #   and no other spaces)
 YyÊP             #   Check that none of the susbtrings in variable `Y`
                  #   are equal to the current substring `y`
 *i               #   If both checks above are truthy:
   ”Âïªï”«        #    Prepend "Coding Challenges" to the duplicated head
          s®ý     #    Join the remainder by variable `®` ("Code Golf")
             «    #    Append it
              ®ì  #    And prepend an additional variable `®` ("Code Golf")
  ë               #   Else:
   y              #    Simply keep the substring `y` as is
    Xì            #    And prepend variable `X` ("Programming Puzzles") 
                  #    since we've split by it
]                 # Close all if-else statements and the map
 J                # Join the mapped substrings together to a single string
  «               # And append it to the initially extracted head
                  # (then output the resulting string implicitly as result)

मेरा (अनुभाग के इस 05AB1E टिप देखें कैसे शब्दकोश का उपयोग करने ) को समझने के लिए क्यों ”–±ÇÀ”है "Programming Puzzles"; ”ƒËŠˆ”है "Code Golf"; और ”Âïªï”है "Coding Challenges"



3

जावास्क्रिप्ट (Node.js) , 174 बाइट्स

s=>s[R='replace'](/\bPPCG\b/g,'CGCC')[R](/\bProgramming Puzzles( \S+ )(Code Golf)\b/g,'$2$1Coding Challenges')[R](/\B#(?=([\da-f]{3}){1,2}\b)(.+?)(..??)(..??)\b/ig,'#$2$4$3')

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


परीक्षण के मामले में विफल रहता है #abcdeक्योंकि रेगेक्स क्वालिफायर {3,6}3 या 6 के बजाय 3 या 6 अक्षरों के बीच मेल खाता है, जो मुझे लगता है कि आप के लिए जा रहे थे।
मूल्य इंक

@ValueInk अच्छी पकड़। +5 बाइट्स के साथ तय की गई।
tsh

लंबी
रीगेक्स

2

पायथ , 177 173 162 142 बाइट्स

J::jb.z"\\bPPCG\\b""CGCC"." z¶NZI°Pÿúd(MÜ_BöIkxnqä'u)"." s6#~ÍN³=<nñu/GÎg"VS2~:J%"(^|\W)#%s\\b"*3%"([\da-f]{%d})"N$r"\1#\2\4\3"$)J

यहां पाइथ के स्ट्रिंग कम्प्रेशन मैकेनिज्म (उर्फ कॉपी-पेस्ट के लिए सुरक्षित है) के बिना एक संस्करण दिया गया है:

J::jb.z"\\bPPCG\\b""CGCC""\\bProgramming Puzzles( \S+ )(Code Golf)\\b""\\2\\1Coding Challenges"VS2~:J%"(^|\W)#%s\\b"*3%"([\da-f]{%d})"N$r"\1#\2\4\3"$)J

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

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

स्पष्टीकरण:

J::                      # definition of J to the following 2 regex replacements
   jb.z                  # input to first regex replacement: all input lines joined together
   "\\bPPCG\\b"          # first regex
   "CGCC"                # first replacement
   ."<compressed>"       # second regex: "\\bProgramming Puzzles( \S+ )(Code Golf)\\b"
   ."<compressed>"       # second replacement: "\\2\\1Coding Challenges"
VS2                      # loop twice, N = 1 or 2
  ~:J                    # some weird assignment: J = regex replace in J (would be J := (regex, replacement) if : was python's regex replace operator)
    %                    # third regex: string format
     "(^|\W)#%s\\b"      # format string
     *3                  # repeat 3 times:
       %"([\da-f]{%d})"N # string format, replace %d with N (the loop counter)
    $r"\1#\2\4\3"$       # third replacement: uses python raw literals because it's shorter than escaping the backslashes
    )                    # end for loop
J                        # print J
  • -11 वैल्यू इंक के रूबी जवाब से बेहतर रेगेक्स के लिए धन्यवाद
  • -20 रूबी और पर्ल जवाब से प्रेरित दोनों हेक्स रिप्लेसमेंट के लिए लूप का उपयोग करने के लिए धन्यवाद

1

पर्ल 5 -p , 152 145 बाइट्स

@ValueInk 7 बाइट्स बचाता है

s/\bPPCG\b/CGCC/g;s/\bProgramming Puzzles( \S+ )(Code Golf)\b/$2$1Coding Challenges/g;for$a(1,2){$p="([a-f0-9]{$a})"x3;s/(^|\s)#\K$p\b/$2$4$3/gi}

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


( \S+ )(Code Golf)\b/$2$1Coding2 बाइट्स बचाता है। इसके अलावा अंतिम रेगेक्स \b(?=\s|$)
वैल्यू इंक

जब आप उस टिप्पणी को टाइप कर रहे थे, मैं उस पहले एक पर काम कर रहा था। मैंने कुछ बाइट्स को बचाने के लिए अन्य परिवर्तन किया है। धन्यवाद!
Xcali

यही कारण है कि \sहोना चाहिए \Wबजाय, अन्यथा यह विफल रहता है इस मामले ( -एक गैर अक्षरांकीय चरित्र है, तो प्रतिस्थापन लागू किया जाना चाहिए)।
ग्रिमी


0

जावा 8, 192 बाइट्स

s->s.replaceAll("\\bPPCG\\b","CGCC").replaceAll("\\bProgramming Puzzles( \\S+ )(Code Golf)\\b","$2$1Coding Challenges").replaceAll("\\B(#(?=([0-9a-f]{3}){1,2}\\b).+?)(..??)(..??)\\b","$1$4$3")

पोर्ट @Neil का रेटिना जवाब है , इसलिए उसे उभारना सुनिश्चित करें!

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

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