क्या चेकबॉक्स अनियंत्रित नहीं है?


65

कोड की समीक्षा करते हुए, मैंने निम्नलिखित कोड पर ठोकर खाई, जो एक चेकबॉक्स की स्थिति का परीक्षण करता है:

if (!isNotUnchecked()) { ... }

मुझे यह पता लगाने के लिए 30 मिनट के लिए मंथन करना पड़ा कि वास्तविक चेकबॉक्स स्थिति क्या कोड की अपेक्षा कर रही थी। कृपया मुझे एक प्रोग्राम लिखें जो इन मूर्खतापूर्ण अभिव्यक्तियों को सरल बना सकता है!


कार्यक्रम को इनपुट के रूप में स्वीकार करना चाहिए एक स्ट्रिंग अभिव्यक्ति को सरल बनाने के लिए (उदाहरण के लिए:) !isNotUnchecked()। कार्यक्रम को isChecked()या तो या एक तार्किक समकक्ष सरलीकृत अभिव्यक्ति का उत्पादन करना चाहिए !isChecked()

इनपुट एक्सप्रेशन में विधि का नाम हमेशा से शुरू होता है is, जिसमें 0..n Notहोता है, और Checked()या के साथ समाप्त होता है Unchecked()। विधि को किसी भी संख्या के द्वारा उपसर्ग किया जा सकता है !

उदाहरण

isChecked() => isChecked()
isUnchecked() => !isChecked()
isNotChecked() => !isChecked()
!isNotChecked() => isChecked()
!!!isNotNotUnchecked() => isChecked()

क्या पाठ हमेशा केस-संवेदी होता है? इनपुट होगा notunischecked?
स्टीवेफेस्टल

1
@SteveFest नहीं, आप मान सकते हैं कि इनपुट हमेशा उस प्रारूप में होता है जिसे मैंने ऊपर वर्णित किया है। आपको isnotuncheckedउदाहरण के लिए संभालने की आवश्यकता नहीं है ।
अरनौद

6
इस तरह के एक फ़ंक्शन नाम के साथ, मैं इसे 10 से 1 ऑड देता हूं कि यह वास्तव में चेक की गई स्थिति का नामकरण के साथ संगत परीक्षण नहीं करता है।
कालेब

2
दूसरे शब्दों में, आप जानते हैं कि एक अनियंत्रित बॉक्स क्या है, आप जानते हैं कि एक गैर-अनियंत्रित बॉक्स क्या है (यह जाँच की जाती है, यदि और केवल "जाँच" और "अनियंत्रित" केवल दो संभावित राज्य हैं, अन्यथा यह कुछ भी हो सकता है। चेकबॉक्स: इंट, साइन ...) और इस विशिष्ट चेकबॉक्स के लिए, यह नहीं है (यह "चेक" नहीं है, चाहे वह चेक मार्क के साथ हो या कुछ भी)। अगर सच है, तो आप सुनिश्चित हैं कि चेकबॉक्स कुछ भी "चेक" नहीं है। यदि गलत है, तो ठीक है, आप जानते हैं कि चेकबॉक्स एक गैर-अनचेक बॉक्स है, लेकिन इसका मतलब यह नहीं है कि यह तब तक चेक किया जाता है जब तक कि केवल दो संभावित राज्य नहीं होते हैं (तब यह चेक किया जाता है)।
जे डो

1
@ जे डो स्पष्टीकरण के लिए धन्यवाद!
अरनौद

जवाबों:


31

पायथन , 51 बाइट्स

lambda s:sum(map(s.count,'!NU'))%2*'!'+'isC'+s[-8:]

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


आप एक शुद्ध प्रतिभाशाली हैं! कभी नहीं सोचा होगाs[-8:]
श्री एक्सकोडर

निश्चित रूप 'isC'+s[-8:]से एक बाइट की तुलना में लंबा है 'isChecked'?
नील

9
लेकिन 'बाइटेड' () 'से 1 बाइट छोटा है
एंड्रयू स्मिथ

क्या कोई समझा सकता है कि क्या s[-8:]है / क्या करता है?
ESR

1
@EdmundReed यह इनपुट के अंतिम 8 अक्षर लेता है, जो हमेशा होते हैं hecked()
xnor

24

रेटिना , 23 बाइट्स

Unc
!C
Not
!
O`is|!
!!

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

व्याख्या

Unc
!C

बारी Uncheckedमें !Checked

Not
!

बारी सभी Notमें रों !। हमें अब ऐसा कुछ मिलता है !!!is!!!!Checked()

O`is|!

isया तो के सभी मैचों को क्रमबद्ध करें !। चूंकि ! < is, यह !स्ट्रिंग की शुरुआत में सभी को स्थानांतरित करता है, इसलिए उपरोक्त उदाहरण बन जाएगा !!!!!!!isChecked()

!!

!बार-बार नकार को रद्द करने के लिए जोड़े निकालें ।



13

पायथन , 43 बाइट्स

lambda s:sum(map(ord,s))%2*'!'+'isC'+s[-8:]

एक अनाम फ़ंक्शन स्ट्रिंग ले रहा है, sऔर एक स्ट्रिंग लौटा रहा है।

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

जब पात्रों के होने की जाँच करने के लिए कोई ज़रूरत नहीं !, Notऔर Unसब ठीक एक अजीब क्रमसूचक है (और cऔर Cदोनों अजीब हैं), तो बस ऑर्डिनल्स योग और तय करने के लिए मूल्य सापेक्ष 2 का उपयोग हम चाहते हैं एक अगर !है या नहीं।

इसके अलावा, फ़ॉर्म एक्सनोर के उत्तर के समान है , क्योंकि मुझे कुछ भी बेहतर नहीं मिला। निम्नलिखित भी 43 है:

lambda s:'!isC'[~sum(map(ord,s))%2:]+s[-8:]

10

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

f=
s=>(s.split(/!|n/i).length%2?'':'!')+'isChecked()'
<input oninput=o.textContent=f(this.value)><pre id=o>

काम की तलाश में है !, Nऔर nवर्ण, जो चेक किए गए राज्य को उल्टा करते हैं। splitडिफ़ॉल्ट रूप से एक विषम सरणी लंबाई देता है, इसलिए !जब splitलंबाई समान होती है तो हम जोड़ते हैं । संपादित करें: @ बाइट्स के लिए 1 बाइट का धन्यवाद सहेजा गया। वैकल्पिक संस्करण, 50 बाइट्स के लिए भी:

s=>`${s.split(/!|n/i).length%2?``:`!`}isChecked()`

हं, अब मैं वापस जाता हूं और अन्य उत्तरों को देखता हूं, वे यह सब कर रहे हैं।
नील

आपको बाइट को बचाने के लिए RegEx से वैश्विक ध्वज छोड़ने में सक्षम होना चाहिए।
झबरा

@ शेग्गी वास्तव में मेरी लंबाई सही है, मैं अभी gनवीनतम संपादन में इसे निकालने में विफल रहा ।
नील

1
मुझे लगता है कि आप एक बाइट को बचा सकते हैं/!|N/i
ETHproductions

@ETHproductions मुझे लगता है कि आप संशोधक के /!|N/बिना थेi
स्प्लिटडिव


7

जावा 7, 100 77 बाइट्स

String c(String s){return(s.split("[!NU]").length%2<1?"!":"")+"isChecked()";}

Expanation:

String c(String s){  // Method with String parameter and String return-type
  return(s.split("[!NU]").length
                     //  Count the amount of '!', 'N' and 'U' in the input String (+ 1)
    %2<1?            //  and if they are an even number:
     "!"             //   Start with an examination mark
    :                //  Else:
     "")             //   Start with nothing
    +"isChecked()";  //  And append "isChecked()" to that
}                    // End of method

टेस्ट कोड:

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

class M{
  static String c(String s){return(s.split("[!NU]").length%2<1?"!":"")+"isChecked()";}

  public static void main(String[] a){
    System.out.println(c("isChecked()"));
    System.out.println(c("isUnchecked()"));
    System.out.println(c("isNotChecked()"));
    System.out.println(c("!isNotChecked()"));
    System.out.println(c("!!!isNotNotUnchecked()"));
  }
}

आउटपुट:

isChecked()
!isChecked()
!isChecked()
isChecked()
isChecked()

7

एसीटो , 49 बाइट्स

&M"pp"
L!)(de
&c;`Che"
`!d!sick
!',@p"!'
'N'U`!Lu

yadda yadda हिल्बर्ट वक्र।

सबसे पहले, हम स्टैक पर तीन महत्वपूर्ण पात्रों को धक्का देते हैं:

!'
'N'U

फिर हम एक कैच मार्क सेट करते हैं और एक ही कैरेक्टर को पढ़कर शुरू करते हैं। हम dइसे बढ़ाते हैं और इसे नकारते हैं, और यदि इसका परिणाम सत्य है (तो अगर स्ट्रिंग खाली था; तो इनपुट समाप्त हो गया), हम अंत तक कूदते हैं:

;`
d!
,@

इनपुट चरित्र की शेष प्रतिलिपि के साथ, हम जांचते हैं कि क्या यह बाकी स्टैक में निहित है (यानी यदि इसका एक, एन, यू)। यदि यह नहीं है, तो हम एक त्रुटि उठाते हैं, हमें वापस हमारे कैच मार्क पर फेंकते हैं जहां हम एक और चरित्र पढ़ते हैं:

&c
`!

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

&M
L!

जब इनपुट बंद हो जाता है, तो हमें अंत में भेज दिया जाता है। वहां, हम दिशा को उल्टा करते हैं, विस्मयादिबोधक चिह्न को धक्का देते हैं, और त्वरित भंडारण को लोड करते हैं और इसे नकारात्मक करते हैं। अगर यह सच है (यानी हमारे पास नकारात्मक संख्या में नकारात्मक चीजें हैं), तो हम उस विस्मयादिबोधक चिह्न को प्रिंट करते हैं जिसे हमने धक्का दिया है:

p !'
`!Lu

अंत में, हम दो भागों में स्ट्रिंग को धक्का देते हैं और उन्हें प्रिंट करते हैं (अंतरिक्ष की बचत के कारणों के लिए):

"pp"
)(de
  Che"
  sick
   "

बाद में, कार्यक्रम अभी भी मूल शुरुआत में वापस चला जाता है, लेकिन चूंकि कोई भी आदेश कुछ भी आउटपुट नहीं करता है या लूप व्यवहार होता है, इससे कोई फर्क नहीं पड़ता। वास्तव में, पहली गैर-नॉनपॉइंटिंग कमांड जो हम पहुंचते हैं, एक अपवाद को उठाता है, कोड के अधिकांश भाग को छोड़ देता है क्योंकि हम कैच मार्क पर कूदते हैं, जिसका अर्थ है कि सभी एसीटो उस भाग में देखते हैं:

&



!' @
'N'U

के बाद से Uअब एक ही-उद्धरण कैरेक्टर द्वारा preceeded नहीं है और इसलिए एक चरित्र शाब्दिक रूप में नहीं देखा जाता है, यह एक कमांड के रूप में व्याख्या हो जाता है: Uढेर पर सभी तत्वों को उलट देता है (अब यह है !, N, U, ऊपर से), और 'Nऔर '!अधिक धक्का अक्षर, जिसका अर्थ है हम स्टैक के साथ समाप्त होते हैं [U, N, !, N, !]

साइड नोट: यह एकेटो के नए संपादक की मदद से लिखा गया (पहला (लिखा हुआ) हिस्सा है ।


6

सी, 78 70 68 बाइट्स

शुक्रिया क्रिस्टोफ़!

c;f(char*s){for(c=1;*s;)c^=!!strchr("!NU",*s++);s="!isChecked()"+c;}

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

आउटपुट:

isChecked() => isChecked()
isUnchecked() => !isChecked()
isNotChecked() => !isChecked()
!isNotChecked() => isChecked()
!!!isNotNotUnchecked() => isChecked()

1
c;f(char*s){for(c=1;*s;)c^=!!strchr("!NU",*s++);s="!isChecked()"+c;}फ्लिप करने के लिए एक्सोर का उपयोग c2 बाइट बचाता है।
क्रिस्टोफ

6

पर्ल 5 , 31 बाइट्स

-2 बाइट्स @Dom हेस्टिंग्स को धन्यवाद ।

कोड + -pध्वज के 30 बाइट्स ।

/c/i;$_="!"x(y/UN!//%2).isC.$'

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

y/UN!//की घटनाओं की संख्या में गिना जाता है Un, Notऔर !। नतीजा यह है कि कई !modulo 2, उसके बाद isChecked()


38 बाइट्स के लिए रेगेक्स पर आधारित एक और प्रयास (डोम हेस्टिंग्स ने उस एक पर 1 बाइट को बचाया):

s/isNot|isUn(c)/!is\u$1/?redo:s/!!//g

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


आपका रेगेक्स संस्करण काम नहीं करता है क्योंकि इसमें दो cएस हैं Unchecked
नील

1
@ रेलेक्स केवल पहले वाले को बदल देता है (क्योंकि मैं /gध्वज का उपयोग नहीं कर रहा हूं )। परीक्षण के मामले मुझे अच्छे लगते हैं (TryItOnline लिंक को देखें)। तो मैं वास्तव में आप क्या मतलब नहीं देख ...
दादा

क्षमा करें, सही कारण यह है कि आपके regex संस्करण काम नहीं करता है कि हालांकि एक है cमें Uncheckedभी है में एक Checkedहै, तो आप के साथ अंत जब आप इसे subsitute CheCked
नील

1
अरे, आशा है कि आप ठीक कर रहे हैं! मैं यहाँ थोड़ी देर में नहीं गया था, लेकिन मैंने पहले -२ पर
डोम हेस्टिंग्स

1
@DomHastings अरे! बहुत बढ़िया, बहुत बहुत धन्यवाद! आपको चारों ओर वापस देखने के लिए खुश :-)
दादा

6

स्काला , 39 30 बाइट्स

s=>"!"*(s.sum%2)+"isChecked()"

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

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

संपादित करें: शीर्ष लेख में घोषणा को स्थानांतरित किया गया (मुझे लगता है कि यह अनुमति है, यदि मैं इसे वापस नहीं डालूंगा)।




3

05AB1E , 16 बाइट्स

ÇOÉ'!×…isCyR8£RJ

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

जोनाथन एलन के अजगर जवाब से अध्यादेशों को जोड़ने की चाल का उपयोग करता है ।

व्याख्या

 ÇO                # sum of ascii values of input
   É               # is odd
    '!×            # repeat "!" that many times
       …isC        # push the string "isC"
           IR8£R   # push the last 8 chars of input
                J  # join everything to string

3

जाप , 24 23 बाइट्स

o"!N" l u)ç'! +`‰C”×B()

व्याख्या

 o"!N" l u)ç'! +`‰C”×B()
Uo"!N" l u)ç'! +`‰C”×B()`
Uo"!N"                     # Only keep "!", "n" and "N" from the input
           ç'!             # Repeat the string "!" by
       l u)                # the parity of the length of the newly formed string
               +`‰C”×B()` # and concatenate with the string "isChecked()"

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


1
रुको ... कैसे करता है ... क्यों ... oकेस-असंवेदनशील है? मुझे नहीं पता था कि ...
ETHproductions

मैं इसे नहीं जानता था, लेकिन मुझे पता चला जब मैंने "एनयू" के साथ परीक्षण किया था। लोअरकेस "एन" "अनचेक" में भी रहा, इसलिए मैं "यू" को छोड़ सकता था
ल्यूक

3

PHP (5.5 - 5.6), 52 50 49 बाइट्स

<?='!'[count(spliti('!|N',$argn))%2]?>isChecked()

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

-2 Bytes by @Titus. Ty :)
-1 Byte  by @ETHproductions. Ty :)

PHP (> = 5.5), 66 65 61

for($b=b;$a=$argn[$i++];)$b^=$a;echo$b&"!"|" ","isChecked()";

रेगेक्स के बिना यह थोड़ा और अधिक हो जाता है :) इसे यहाँ आज़माएं ।

-4 Bytes by @Titus. Ty :)

1
error_reportingडिफ़ॉल्ट मान है E_ALL&~E_NOTICE&~E_STRICT&~E_DEPRECATED
टाइटस

1
@ एक rexx चुनौती में जेई की पिटाई!
क्रिस्टोफ

$b^=$aबहुत अच्छा लगा! आप यह भी कर सकते हैं कि बिना PHP टैग्स एक ही आकार में।
टाइटस

1
61 बाइट्स अगर प्रमुख व्हाट्सएप की अनुमति है:for($b=b;$a=$argn[$i++];)$b^=$a;echo$b&"!"|" ","isChecked()";
टाइटस

@ टिट्स मुझे स्वीकार करना होगा कि यह इस उत्तर से प्रेरित था ।
क्रिस्टोफ

3

जेली ,  16  15 बाइट्स

OSḂ⁾!iṫ⁾sCø³ṫ-7

एक पूर्ण प्रोग्राम जो स्ट्रिंग को कमांड लाइन तर्क के रूप में लेता है और परिणाम को प्रिंट करता है

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

OSḂ⁾!iṫ-7³ṫṭ⁾sCया OSḂ⁾!iṫ-7³ṫ⁾sC;दोनों 15 के लिए भी काम करेंगे।

कैसे?

मेरे पायथन जवाब के रूप में एक ही विचार का उपयोग करता है , लेकिन जेली के एक अलग निर्माण !isCया isCकुछ अंतर्निहित मुद्रण का उपयोग करके बाइट बचाता है ...

OSḂ⁾!iṫ⁾sCø³ṫ-7 - Main link: s
O               - cast to ordinals
 S              - sum
  Ḃ             - mod 2
   ⁾!i          - literal ['!','i']
      ṫ         - tail -> ['i'] if OSḂ was 0; ['!','i'] if OSḂ was 1
                - this is printed due to the following starting a new leading
                - constant chain. Printing smashes so either "i" or "!i" is printed.
       ⁾sC      - literal ['s','C']
                - this is printed (as "sC") due to the following niladic chain.
          ø     - start a new niladic chain
           ³    - program's first input (3rd command line argument), s
            ṫ-7 - tail from index -7 = ['h','e','c','k','e','d','(',')']
                - implicit print (of "hecked()")

पिछला @ 16 बाइट्स 9 (एक ही अंतर्निहित विचार के साथ संयोजन और युग्मन का उपयोग करते हुए):

OSḂ⁾!iṫ;⁾sC,ṫ€-7

आह, डारन, मुझे लगा कि मैं मॉड 2 ट्रिक के साथ कुछ करने वाला हूं। तब मुझे यह पता चला: पीआई में यह 18 बाइट्स के लिए था, शायद यह मदद कर सकता है:OS1&”!x;“isC”;ṫ-7$
कॉनर ओ'ब्रायन

2

पर्ल 6 ,  35  31 बाइट्स

{'!'x m:g/<[!NU]>/%2~'isChecked()'}

कोशिश करो

{'!'x tr/!NU//%2~'isChecked()'}

इसे आज़माएं
(इसके लिए उत्परिवर्तित इनपुट स्ट्रिंग की आवश्यकता होती है जिसे उत्परिवर्तित किया जाएगा)

विस्तारित:

{
  #(
    '!'
  x               # string repeat

    # m:g/<[!NU]>/
    tr/!NU//      # find the number of negatives
      % 2         # modulus 2
  #)

  ~                # string concat

    'isChecked()'
}

2

सेड, 36 बाइट्स

अन्य सभी प्रत्यक्ष प्रतिस्थापन उत्तरों के समान विचार।

:
s/Unc/NotC/
s/isNot/!is/
s/!!//
t

2

सीड, 37 38 बाइट्स

:;s/is(Not|Un)/!is/;s/!!//;t;s/ch/Ch/

-rस्विच के लिए 37 + 1 :

sed -r ':;s/is(Not|Un)/!is/;s/!!//;t;s/ch/Ch/'

1
आखिरी बार s/c/C/पर्ल 5 के जवाब में दिक्कतें
नील

हाँ, ऐसा लगता है कि s/c/C/"अन" के बिना मामलों में दूसरा "ग" पकड़ रहा है
केविन

1
इसके अलावा, आप एक बाइट को छोड़ने gऔर s/!!//लूप के अंदर ले जाकर बचा सकते हैं ।
केविन

2

गणितज्ञ, 82 61 60 बाइट्स

छोटा ट्वीक, एक और इन्फिक्स ऑपरेटर जोड़ा:

"!"~Table~Mod[#~StringCount~{"o","n","!"},2]<>"isChecked()"&

पहले:

"!"~Table~Mod[StringCount[#,{"o","n","!"}],2]<>"isChecked()"&

सभी ओ, एन, और फिर 2 पर गिनें! सामने।

पुराना संस्करण:

"!"~Table~Mod[StringCount[StringReplace[#,{{"o","n"}->"!"}],"!"],2]<>"isChecked()"&

2

एक्सेल, 90 बाइट्स

=IF(ISODD(SEARCH("C",SUBSTITUTE(SUBSTITUTE(A1,"Un","!"),"Not","!"))),"","!")&"isChecked()"

2

विंडोज बैच, 120 बाइट्स

इससे पहले 268 257 253 245 239 221 182 176 169 123 बाइट्स

@set a=%1
@set s=#%a:~,-2%
@set s=%s:!=N#%
@for %%a in (%s:N= %)do @set/ac+=5
@if %c:~-1%==0 cd|set/p=!
@echo isC%a:~-8%

कार्यक्रम सभी में बदल !जाता है N#। क्योंकि अब सभी नकारात्मक संकेत; - (अब यह है N#) Not, और Unसम्‍मिलित हैंN , कार्यक्रम की उपस्थिति की संख्या की गणना कर सकता है Nऔर निर्धारित कर सकता है कि क्या एक प्रमुख !की आवश्यकता है।

हर बार कार्यक्रम को गिना जाता है N , तो काउंटर को 5 से जोड़ा जाता है। 5 को जोड़ने का कारण यह है क्योंकि प्रत्येक वैकल्पिक मान 0 या 5 में 5 छोरों को जोड़ते हैं। इसका उपयोग यह निर्धारित करने के लिए किया जा सकता है कि मान विषम है या सम और अग्रणी !यदि आवश्यक हो तो हमें जोड़ा गया।

इसके अलावा, xnor की अंतिम-आठ-वर्ण चाल का उपयोग किया जाता है।


किसी को लगता है कि विंडोज़ बैच में प्रोग्रामिंग असंभव होगी ...
NieDzejkob

बेशक ...... बैच स्क्रिप्टिंग बेतुका है ....
स्टेवेफस्टल

1

जेली , 29 28 25 21 बाइट्स

f“NU!”LḂ”!x;“µịÆẹṠƊẹ»

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

f“NU!”LḂ”!x;“µịÆẹṠƊẹ»  Main link, argument is z
f“NU!”                 Filter to only keep "NU!"
      LḂ”!x            Repeat exclamation mark by the parity of the length
           ;“µịÆẹṠƊẹ»  Concatenate to "isChecked()"

जोनाथन एलन को -4 बाइट्स धन्यवाद!
जोनाथन एलन को -4 बाइट्स धन्यवाद! (संकुचित तारों का उपयोग करके)


यहां बने इंटरफेस लिन को एक मॉड्यूल के रूप में सहेजें (jellyCompress.py कहते हैं), तो उस के साथ बनाया गया होगा jellyCompress.Compress().string("is").dictionary("Checked").string("()").go()। (यदि आप एक Windows cmd में चल रहे हैं और फ़ॉन्ट DejaVu Sans Mono पर स्विच करें और chcp 65001वर्णों को प्रदर्शित करने के लिए पायथन लॉन्च करने से पहले कमांड के साथ कोडपेज को बदलें )
जोनाथन एलन

@JonathanAllan ओह ठीक है। धन्यवाद!
हाइपरनेत्रिनो

1

PHP, 55 बाइट्स

<?=preg_match_all("#!|N#i",$argn)&1?"!":""?>isChecked()

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

PHP, 58 बाइट्स

<?=preg_match_all("#[!NU]#",$argn)%2?"!":"","isChecked()";

इसके बजाय "#[!NU]#"आप उपयोग कर सकते हैं"#[!N]#i"

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

PHP, 68 बाइट्स

संस्करण रेगेक्स के बिना

for(;$c=$argn[$i++];)$d^=!trim($c,"UN!");echo"!"[!$d],"isChecked()";

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


3
<?=preg_match_all("#[!UN]#",$argn)&1?"!":""?>isChecked()-2 बाइट्स
टाइटस

मेरे पास आने से पहले ठीक वैसा ही उत्तर था count(split()): D @Titus अच्छा विचार!
क्रिस्टोफ

1
" !"[$d&1]एक और बाइट बचाता है अगर प्रमुख व्हाट्सएप ठीक है। $d^=!trim($c,"UN!")3 बाइट्स बचाता है (क्योंकि &1अब आपको कोई आवश्यकता नहीं है)।
टाइटस

1
@ टिट्स हां एक उदाहरण और है कि आपको अधिक ज्ञान है तो खुद को। धन्यवाद और अनुगामी "!"[!$d]
व्हाट्सएप

1
@Christoph आप सही हैं मैं इसके बारे में खेद भूल गया हूँ
Jörg Hülsermann

1

जाप , 19 बाइट्स

`‰C”×B()`i'!pU¬xc u

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

अनपैक्ड और यह कैसे काम करता है

`‰C”×B()`i'!pUq xc u

`‰C”×B()`   Compressed string for "isChecked()"
i     Insert the following string at the beginning...
'!p     "!" repeated the following number of times...
Uq        Split the input into chars
xc        Sum the charcodes
u         Modulo 2

जोनाथन एलन के पायथन समाधान से चारकोड-सम ट्रिक का उपयोग करना ।


1

पास्कल (एफपीसी) , 119 बाइट्स

var s:string;j:word;c:char;begin read(s);for c in s do j:=j+ord(c);if 1=j mod 2then write('!');write('isChecked()')end.

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

विधि का उपयोग करना जो लगभग हर उत्तर करता है, इनपुट में वर्णों के कोडपॉइंट्स को समेटना, फिर योग की समता की जाँच करना।

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