कचरा प्रबंधन करें


35

पीपीसीजी में यह कुछ हद तक एक परंपरा बन गई है कि कुछ उपयोगकर्ता अनाग्राम (पुराने के अक्षरों को फिर से व्यवस्थित करके बनाया गया नया नाम) द्वारा अस्थायी रूप से अपना नाम बदल लेते हैं।

कभी-कभी यह पता लगाना मुश्किल हो जाता है कि कौन है। मैं एक प्रोग्राम या फ़ंक्शन का उपयोग यह बताने के लिए कर सकता हूं कि क्या दो वाक्यांश एक दूसरे के आरेख हैं।

चुनौती

कार्यक्रम या फ़ंक्शन को दो तार लेना चाहिए और एक सत्य परिणाम का उत्पादन करना चाहिए यदि वे एक दूसरे के आरेख हैं, और अन्यथा गलत है।

नियम

  • इनपुट में केवल अक्षर (ASCII 65 से 90 और 97 से 122), अंक (ASCII 48 से 57) या स्पेस (ASCII 32) होंगे।
  • विपर्यय संबंध मामले से स्वतंत्र है। तो "आर्म" और "रैम" एनाग्राम हैं।
  • रिक्त स्थान की भी गिनती नहीं है। तो "कीबोर्ड" और "बार्क्ड यो" एनाग्राम हैं
  • सभी भवन निर्माण की अनुमति दी
  • इनपुट प्रारूप लचीला है (दो स्ट्रिंग्स, दो स्ट्रिंग्स की एक सरणी, एक स्ट्रिंग जिसमें उपयुक्त विभाजक के साथ दोनों वाक्यांश होते हैं ...)

कोड गोल्फ। सबसे कम बाइट्स जीतता है।

परीक्षण के मामलों

Truthy:

Lynn, Nyl N
Digital Trauma, Tau Digital Arm
Sp3000, P S 3000
Manage Trash So, Those anagrams

Falsy

Calvins Hobbies, Helka Homba
Android, rains odd
In between days, bayed entwine
Code golf, cod elf got

8
संबंधित लेकिन अलग (केवल पत्र, कोई मामला नहीं, कोई स्थान नहीं)
लुइस मेंडो

4
इस सवाल का शीर्षक बहुत ही हैरान करने वाला है, जिसके पास पर्याप्त कॉफी नहीं है। +1: D
बिल्ली

1
@DonMuesli मैं तर्क दूंगा कि यह अभी भी एक धोखा है। मामूली परिवर्तन बहुत तुच्छ हैं।
मेगो

15
Manage Trash So, Those anagrams। अच्छा लगा।
mbomb007

3
So, the anagrams...
लीक नून

जवाबों:



15

रेटिना, २५

i+`(\w)(.*,.*)\1
$2
^\W*$

इसे ऑनलाइन आज़माएं! इसके अतिरिक्त, आप एक संशोधित बहु-पंक्ति संस्करण चला सकते हैं ।

कॉमा के बाद उनके मैचों के साथ अल्पविराम से पहले पत्र हटाएं। अगर हमारे पास कोई पत्र नहीं बचा है तो यह एक विपर्यय था।


रेटिना के लिए, यदि एक सकारात्मक संख्या को विफलता माना जा सकता है, और शून्य को सफलता माना जाता है, तो यह \wअंतिम चरण के रूप में उपयोग करके तीन बाइट्स कम हो सकता है ।
FryAmTheEggman


@ देव-नल "इनपुट में केवल अक्षर होंगे (ASCII 65 से 90 और 97 से 122), अंक (ASCII 48 से 57) या स्पेस (ASCII 32)"
FryAmTheEggman

11

Pyth, 11 10 बाइट्स

मुझे की शक्ति सिखाने के लिए @FryAmTheEggman को धन्यवाद ;!

qFmSr-d;0Q

यहाँ यह कोशिश करो!

इनपुट के रूप में दो तारों की सूची लेता है।

व्याख्या

qFmSr-d; 0Q # Q = इनपुट

  m Q # मैप क्यू के साथ d लंबो चर के रूप में
     -d; # स्ट्रिंग से रिक्त स्थान फ़िल्टर करें
    r 0 # लोअरकेस में कनवर्ट करें
   स्ट्रिंग में सभी वर्णों को सॉर्ट करें
qF # परिणामी सूची और समानता के लिए जाँच करें

10

पायथन 2, 63 61 बाइट्स

lambda*l:len({`sorted(s.lower())`[2::5].strip()for s in l})<2

एक अनाम फ़ंक्शन, जो वास्तव में, n तर्क लेता है और निर्धारित करता है कि क्या उनमें से सभी n आपसी तालमेल हैं!f("Lynn", "Nyl N")लौटता है True

यह सेट कॉम्प्रिहेंशन ट्रिक है xnor द्वारा। इसने दो बाइट्स बचाए, लेकिन पुराने दृष्टिकोण बहुत साफ दिखे:

exec"a=`sorted(input().lower())`[2::5].strip();a"*2;print a==aa

`sorted(input().lower())`.strip(" [',")एक ही लंबाई है: /
Sp3000

execबात चालाक है, लेकिन बहुत जटिल लगता है। आप के साथ बेहतर कर सकते हैं lambda*l:len({`sorted(s.lower())`[2::5].strip()for s in l})<2
xnor

2
धन्यवाद! मैं थोड़ा निराश हूँ - यह बहुत अच्छा लग रहा था। वैसे भी पोस्ट में रख रहा हूं।
लिन

7

जेली, 12 बाइट्स

ḟ€⁶O&95Ṣ€QLḂ

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

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

ḟ€⁶O&95Ṣ€QLḂ  Main link. Input: A (list of strings)

  ⁶           Yield ' '.
ḟ€            Filter it from each string.
   O          Apply ordinal to all characters.
    &95       Take bitwise AND with 95 to make the ordinals case-insensitive.
       Ṣ€     Sort each list of ordinals.
         Q    Deduplicate the list.
          L   Get the length.
           Ḃ  Compute the length's parity (1 -> 1, 2 -> 0).

वैकल्पिक संस्करण, गैर-प्रतिस्पर्धात्मक (9 बाइट्स)

जेली के अपरकेस के पास एक बग था, और जेली के पास अब भी समानता के लिए सूचियों का परीक्षण करने के लिए कोई अंतर्निहित नहीं था ...

ḟ⁶ŒuṢµ€⁼/

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

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

ḟ⁶ŒuṢµ€⁼/     Main link. Input: A (list of strings)

     µ€       Map the chain to the left over A.
 ⁶            Yield ' '.
ḟ             Filter it from the string.
  Œu          Cast to uppercase.
    Ṣ         Sort.
       ⁼/     Reduce by equality.

6

CJam, 11 12 14 बाइट्स

3 2 बाइट्स @FryAmTheEggman के लिए धन्यवाद हटा दिया

{lelS-$}2*=

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

{      }2*       e# do this twice
 l               e# read line as a string
  el             e# make lowercase
    S-           e# remove spaces from string
      $          e# sort
          =      e# compare strings

@FryAmTheEggman धन्यवाद!
लुइस मेंडो

@FryAmTheEggman फिर से धन्यवाद! मुझे अभी भी CJam :-) के बारे में बहुत कुछ सीखना है
लुइस

3
आपका कोड चुपके से हँस रहा है। lel
21

या यह एक है? lel==> 1e1कोई नहीं जानता। यह एक रहस्य है।
user48538

6

जावास्क्रिप्ट, ६ ९ ६१ 60 59 बाइट्स

1 बाइट धन्यवाद @ ҒЦꝆПҒЦꝆ । Currying के साथ बंद 1 बाइट ( ने बताया द्वारा @apsillers )

n=>m=>(G=s=>[]+s.toLowerCase().split(/ */).sort())(n)==G(m)


2
एक ही समय में रिक्त स्थान को छानना और एक सरणी में परिवर्तित करना बहुत अच्छा है!
नील

2
बहुत अच्छा। आप एक बाइट को करीने का उपयोग करके बचा सकते हैं, जिसे समुदाय ने निर्णय लिया है कि यह तर्क का एक स्वीकार्य रूप है :n=>m=>...
apsillers

कोशिश करो n=>m=>(G=s=>[]+s.toLowerCase().split(/\S/).sort())(n)==G(m)। मैच के बजाय स्प्लिट का उपयोग करने से आपको बाइट बचानी चाहिए।
मामा फन रोल

@ ӍѲꝆΛҐӍΛПҒЦꝆ। नहीं, क्योंकि मान लीजिए s='db cz'... अब परिणाम ... और परिणामs.match(/\S/g).sort()['b','c','d','z']s.split(/\s/).sort()['cz','db']
हटा दिया गया

@ ӍѲꝆΛҐӍΛПҒЦꝆ। लेकिन ... आपके विचार को देखते हुए, मैंने इसे थोड़ा बदल दिया और एक बाइट को बचा लिया ... धन्यवाद!
हटा दिया

6

MATL , 11 बाइट्स

2:"jkXvS]X=

EDIT (20 मई, 2016) लिंक में कोड भाषा के हालिया परिवर्तनों के कारण, के Xzबजाय उपयोग करता है Xv

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

2:"     ]       % do this twice
   j            % read input line as a string
    k           % convert to lowercase
     Xv         % remove spaces
       S        % sort
         X=     % are they equal?

3
क्या आपने उस चुनौती के लिए सिर्फ अपना नाम बदला है?
Denker

3
@DenkerAffe मैं कुछ समय से इसके बारे में सोच रहा था। मैंने इसे चुनौती के साथ संयोग से बनाया है :-)
लुइस मेंडो

1
डॉन मूसली लोल। तो आप मूसली लुइस के भगवान हैं !? क्या यह है कि आप अपने स्वस्थ रंग को कैसे बनाए रखते हैं?
रायरेंग - मोनिका

@rayryeng अरे! आपको यहाँ देखकर अच्छा लगा, रे! वापस गोल्फ के लिए जाओ!
लुइस मेंडो

मैं वादा करता हूँ कि मैं एक बार :) इस कोर्स के समाप्त होने के बाद ... मुझे लगता है कि आप CJam को भी सीख रहे हैं। बहुत अच्छा!
रायरेंग - मोनिका

4

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

2`,ùSô`n=

यह ऑनलाइन की कोशिश करो!

हर कोई एक ही एल्गोरिदम का उपयोग कर रहा है। यहाँ यह अभी तक फिर से है।

2`    `n          Do it twice
  ,               Read a string
   ù              Make it lowercase
    S             Sort
     ô            Strip spaces.
        =         Check equality.

संपादित करें: एहसास छँटाई तार पर सही ढंग से काम करता है, और सामने की ओर रिक्त स्थान को छाँटता है ताकि पट्टी () काम करेगी।


4

सी, 165 बाइट्स

#define d(x) int x(char*a,char*b){
d(q)return*a&224-*b&224;}
#define n(x) for(qsort(x,strlen(x),1,(__compar_fn_t)q);*x<33;x++);
d(s)n(a)n(b)return strcasecmp(a,b);}

पठनीय और काम के संदर्भ में,

#include <stdlib.h>
#include <string.h>
#include <stdio.h>

// start of comparison
int q(char *a, char *b){
     return ((*a)&0xdf)-((*b)&0xdf); // case-insensitive
}
int s(char *a, char *b){
    for(qsort(a,strlen(a),1,(__compar_fn_t)q); *a<33; a++) /**/;
    for(qsort(b,strlen(b),1,(__compar_fn_t)q); *b<33; b++) /**/;
    return strcasecmp(a,b);
}
// end of comparison

int main(int i, char **v){
    printf("'%s' '%s'", v[1], v[2]);
    printf("=> %d\n", s(v[1], v[2])); // 0 if equalish
    return 0;
}

3

zsh, 85 बाइट्स

[ $(for x in $@;{tr -d \ <<<$x|tr A-Z a-z|fold -1|sort|paste -sd x}|uniq|wc -l) = 1 ]

कमांड लाइन तर्क के रूप में इनपुट, रिटर्न कोड के रूप में आउटपुट।

forवाक्य रचना इस बैश असंगत बना देता है।

[               # test...
$(for x in $@;  # map over arguments
{tr -d \ <<<$x  # remove spaces
|tr A-Z a-z     # lowercase
|fold -1        # put each character on its own line
|sort           # sort lines
|paste -sd x    # remove all newlines except last
}|uniq          # take only unique lines
|wc -l          # how many lines remain?
) = 1 ]         # if only 1 line left, it must have been an anagram

3

जाप, 12 बाइट्स

N®v ¬n ¬xÃä¥

इसे ऑनलाइन टेस्ट करें!

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

        // Implicit: N = array of input strings
N®    Ã // Take N, and map each item Z to:
v ¬n    //  Take Z.toLowerCase(), split into chars, and sort.
¬x      //  Join and trim off whitespace.
ä¥      // Reduce each pair of items (that's exactly one pair) X and Y to X == Y.


3

पर्ल, 34 33 + 1 = 34 बाइट्स

s/(.)(.*,.*)\1/$2/i?redo:say!/\w/

आवश्यक है -nझंडा और नि: शुल्क -M5.010| -E:

$ perl -M5.010 -ne's/(.)(.*,.*)\1/$2/i?redo:say!/\w/' <<< 'hello, lloeh'
1

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

                                   # '-n' make a implicit while loop around the code
 s/(.)(.*,.*)\1/$2/i               # Remove a letter that occurs on both sides of the comma.
                    ?
                     redo:         # Redo is a glorified goto statement that goes to the top of the while loop
                          say!/\w/ # Check to see if any letter is left

एक बाइट को बचाने के लिए टर्नरी ऑपरेटरों का उपयोग करने के सुझाव के लिए msh210 के लिए धन्यवाद


3

बलूच गायर , 9 बाइट्स

{ṇ₁cḷ}ᵐpᵈ

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

सत्य / झूठे उत्पादन को सफलता / असफलता के माध्यम से प्राप्त किया जाता है, यह Brachylog है।

पहले एक बाइट का उपयोग इस धारणा cṇ₁cḷḍके {ṇ₁cḷ}ᵐतहत किया गया था कि दो इनपुट तार एक ही लंबाई के माइनस व्हाट्सएप होंगे, लेकिन मैंने महसूस किया कि यह सफल होगा जहां इसे विफल होना चाहिए Ah Hass, haha

{    }ᵐ      For both strings in the input,
 ṇ₁          split on spaces,
   c         concatenate,
    ḷ        and lowercase.
       pᵈ    The strings are permutations of each other.

2

PHP, 109 94 बाइट्स

function f($x){return str_split((trim($x));}function g($x,$y){return array_diff(f($x),f($y));}

Blech, दो function/returns मुझे यहाँ मार रहे हैं।

दो stringइनपुट के बीच अंतर arrayको वर्णों के रूप में लौटाता है । PHP आवश्यकताओं []को returnपूरा करते हुए मिथ्या मानता है ।


3
function($x,$y){$S=str_split;return array_diff($S(trim($x)),$S(trim($y)));}-> 75 बाइट्स। एक अनाम फ़ंक्शन बनाता है जो परिणाम देता है। मैंने उस लंबे फ़ंक्शन को हटा दिया है और कॉल को str_splitएक असाइन किए गए चर के साथ बदल दिया है , इसे छोटा करने के लिए।
इस्माईल मिगुएल

अच्छा लगा। मैं इसे एक फंक्शन में कम करने के लिए इसे ट्वीक कर रहा था, यह उस से दो कदम आगे है, अच्छी तरह से किया गया।
रिक्सी 16

2

बैश + जीएनयू उपयोगिताओं, 51

f()(fold -1<<<${@^^}|sort)
f $1|diff -qBw - <(f $2)
  • एक फ़ंक्शन को परिभाषित करें f()जो:
    • ${@^^} सभी मापदंडों को ऊपरी मामले में परिवर्तित करता है
    • fold -1 विभाजन चार - एक प्रति पंक्ति
    • sortकी पंक्तियाँ
  • फोन diffके साथ -qदबाने पूर्ण diff उत्पादन के लिए और -Bwखाली स्थान के परिवर्तनों को अनदेखा करने के लिए

2

पाइके (30 से कम, नॉनकमेटिटिव), 9 बाइट्स

Fl1dk:S)q

स्पष्टीकरण:

F      )  -  for _ in eval_or_not(input())
 l1       -     ^.lower()
   dk:    -    ^.replace(" ", "")
      S   -   sorted(^)
        q - ^==^

2

गणितज्ञ, 77 76 बाइट्स

StringMatchQ[##,IgnoreCase->1>0]&@@(""<>Sort[Characters@#/." "->""]&/@{##})&

पहला भाग वास्तव में मेरे एक और प्रश्न का उत्तर है!


2

पाइक, 54 112 109 109 96 बाइट्स

#define a(x) sort((array)replace(lower_case(x)," ",""))
int s(mixed i){return a(i[0])==a(i[1]);}

mixedसे छोटा होता है array(string)

sरिटर्न 1अगर इसके तर्क विपर्यय हैं।


2

क्यू, 25 बाइट्स

f:{~/{x@<x:x@&~^x:_x}'x}

नोट.- गिनती में फ़ंक्शन नाम f शामिल है: परीक्षणों को सुविधाजनक बनाने के लिए ( रूप में हम 2 बाइट्स सकते हैं)

पठनीय संस्करण

{x आरोही नॉट लोअर x} पर मेल करें प्रत्येक एक्स

{.. x ..} is an anonymous function with arg x
_x        lowers string x
&~^x      where not null x (space is considered null)
x@..      selects elements of x according to indexes .. 
<x        ascending indexes of x (not values). Ex <"cab" is 1 2 0
x@<x      ascending values of x (x at ascending indexes of x)
~         match (diad function). Ex "one"~"one" is true
f'..      applies function f for each argument ..
f/..      applies function f over elements of sequence (fold)

परीक्षा

f("Lynn";"Nyl N")                       
f("Digital Trauma";"Tau Digital Arm")   
f("Sp3000";"P S 3000")                  
f("Manage Trash So";"Those anagrams")   
f("Calvins Hobbies";"Helka Homba")      
f("Android";"rains odd")                
f("In between days";"bayed entwine")    
f("Code golf";"cod elf got")    

उत्पन्न करता है (1 बी = सच, 0 बी = गलत)

1b
1b
1b
1b
0b
0b
0b
0b

क्यू के बारे में

Kx.com द्वारा विकसित सामान्य प्रयोजन की भाषा (एपीएल व्युत्पन्न, डेटा प्रसंस्करण में विशेष)। विंडोज / लिनक्स / मैकओएस के लिए नि: शुल्क पूर्ण कार्यात्मक मूल्यांकन संस्करण।


आपका क्या मतलब है, अन्य भाषाएं गंभीर नहीं हैं? :-P
लुइस मेंडो

यदि fकोड को ठीक से मूल्यांकन करने के लिए आवश्यक है, तो इसे गिना जाना चाहिए। अन्यथा, बस इसे अपने सबमिशन कोड से हटा दें, और केवल उदाहरणों में इसका उपयोग करके बताएं कि फ़ंक्शन को कैसे असाइन किया जाए।
मेगो

बेशक, अन्य भाषाएं उतनी ही गंभीर हैं जितना कि मैं अपनी गरीब अंग्रेजी की भीख मांगता हूं। लेकिन कुछ भाषाएं पठनीयता का त्याग करती हैं या इस प्रकार की प्रतियोगिताओं के लिए पुस्तकालयों के तदर्थ से सुसज्जित होती हैं। क्यू एक 'सामान्य प्रयोजन की भाषा' है, इस तथ्य के बावजूद कि कोड बहुत पठनीय नहीं है।
जे। सेंदड़ा

आपको केवल एक बार एक्स असाइन करने की आवश्यकता है यदि आप बाद में कम करते हैं, इस प्रकार k)~/{x@<x:_x@&~^x}'17 बाइट्स के लिए .. लेकिन मैं कहूंगा कि यह 19 है क्योंकि आपको k)ब्रैकेट की आवश्यकता है क्योंकि यह Kकोड के बजाय है Q...
स्ट्रीटस्टर

2

एपीएल, 31 वर्ण

{≡/{x[⍋x←('.'⎕R'\u0')⍵~' ']}¨⍵}

ऐसा करने के लिए:

    {≡/{x[⍋x←('.'⎕R'\u0')⍵~' ']}¨⍵}'Sp3000' 'P S 3000' 
1

अंग्रेजी में:

  • { ... }¨⍵: तर्क के दो तत्वों में से प्रत्येक के लिए
  • x←('.'⎕R'\u0')⍵~' ': अपरकेस (एक रेगेक्स का उपयोग करके ...) को रिक्त स्थान के बिना स्ट्रिंग में बदल दें और अस्थायी परिणाम को असाइन करें x
  • x[⍋x]: सॉर्ट x
  • ≡/: छँटाई के दो परिणामों की तुलना करें: यदि वे मेल खाते हैं, तो 1 लौटाएं।

क्या इसे ऑनलाइन आज़माना संभव है? मैं इस के साथ की कोशिश की, लेकिन मैं वास्तव में यह कैसे उपयोग करने के लिए पता नहीं है
लुइस मेंडो

ज़रूर। यहाँ: परिभाषा जिसके बाद आप सिर्फ टाइप कर सकते हैंf 'first avatar' 'second avatar'
lstefano

धन्यवाद! हो सकता है कि उत्तर में जोड़ दें? ताकि लोग कोशिश कर सकें
लुइस मेंडो

-9:≡/{x[⍋x←0~⍨32|⎕UCS⍵]}¨
अदाम

@ Adám: यह काम नहीं करेगा क्योंकि ≡/{x[⍋x←0~⍨32|⎕UCS⍵]}¨'pp' '00'1 देता है
lstefano

2

जावा, 218 बाइट्स

पहली बार मैंने कभी जावा लिखा है ...

golfed:

import java.util.Arrays;boolean M(String a,String b){char[]A=a.toUpperCase().replace(" ","").toCharArray();char[]B=b.toUpperCase().replace(" ","").toCharArray();Arrays.sort(A);Arrays.sort(B);return Arrays.equals(A,B);}

Ungolfed:

import java.util.Arrays;
public class ManageTrashSo {
    public boolean M(String a, String b) {
    char[] A = a.toUpperCase().replace(" ", "").toCharArray();
    char[] B = b.toUpperCase().replace(" ", "").toCharArray();
    Arrays.sort(A);
    Arrays.sort(B);
    return Arrays.equals(A, B);
   }
}

परिक्षण:

    ManageTrashSo manageTrashSo = new ManageTrashSo();

    //True
    System.out.println(manageTrashSo.M("Lynn", "Nyl N"));
    System.out.println(manageTrashSo.M("Digital Trauma", "Tau Digital Arm"));

    //False
    System.out.println(manageTrashSo.M("Android", "rains odd"));
    System.out.println(manageTrashSo.M("In between days", "bayed entwine"));

मुझे पता है कि यह लगभग एक वर्ष हो गया है, लेकिन आप इसे इस तरह से 32 बाइट्स द्वारा गोल्फ कर सकते हैं: boolean f(String...a){java.util.Arrays x=null;String[]A=g(a[0]),B=g(a[1]);x.sort(A);x.sort(B);return x.equals(A,B);}String[]g(String a){return a.replace(" ","").toUpperCase().split("");}( 186 बाइट्स ) या यदि आप इसे जावा 8 लैम्ब्डा में बदलते हैं, तो यह हो सकता है: a->b->{java.util.Arrays x=null;String[]A=g(a),B=g(b);x.sort(A);x.sort(B);return x.equals(A,B);};String[]g(String a){return a.replace(" ","").toUpperCase().split("");}( 167 बाइट्स )। यहाँ परीक्षण कोड के साथ एक TIO है।
केविन क्रूज़सेन


1

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

def f;gets.upcase.chars.sort.join.strip;end
p f==f

लेखन f=->{...}और f[]==f[]बस के रूप में लंबे समय है। :(


1

पॉवरशेल, 81 बाइट्स

param([char[]]$a,[char[]]$b)-join($a-replace' '|sort)-eq-join($b-replace' '|sort)

मेरे उत्तर का थोड़ा सा फिर से लिखनालिंक किए गए एनाग्राम चुनौती पर ।

इनपुट को चार-सरणियों के रूप में लेता है, -replaceरिक्त स्थान को हटाने के लिए एक ऑपरेशन करता है , sortउन्हें (जो वर्णानुक्रम में, एएससीआईआई मूल्य द्वारा नहीं), फिर -joinउन्हें एक स्ट्रिंग में वापस कर दें। -eqPowerShell में डिफ़ॉल्ट केस-संवेदी द्वारा है, लेकिन यहाँ यह तारों पर किया जाना चाहिए, के रूप में [char]'a'के बराबर नहीं है [char]'A', इसलिए के लिए कारण -join


1

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

के लिए +1 शामिल करें -p

कुछ हद तक अपमानजनक है क्योंकि यह कमांडलाइन पर दिए जा रहे कार्यक्रम पर निर्भर करता है।

perl -pe'<>=~s%\S%*_=s/$&//i?_:0%reg;$_=!//'

फिर स्ट्रिंग्स को STDIN पर लगातार 2 लाइनों के रूप में दें

एक बहुत ही अपमानजनक समाधान 30 बाइट्स है:

perl -ne'<>=~s%\w%1/!s/$&//i%reg;1/!//'

यह तब क्रैश हो जाता है जब तार एनाग्राम नहीं होते हैं और इसलिए शेल के दृष्टिकोण से एक गलत निकास कोड देता है। यह उस मामले के लिए STDERR पर कचरा भी देता है। यदि स्ट्रिंग्स एनाग्राम हैं, तो प्रोग्राम चुप है और एक "सही" निकास कोड देता है



1

एक्सेल VBA, 122 बाइट्स

अनाम VBE तत्काल विंडो फ़ंक्शन जो रेंज से इनपुट लेता है [A1:B1]और VBE तत्काल विंडो में आउटपुट करता है

a=Replace([A1]," ",""):b=Replace([B1]," ",""):For i=1To Len(a):b=Replace(b,Mid(a,i,1),"|",,1,1):Next:?b=String(len(a),"|")

0

सी #, 378 बाइट्स

मुझे एक हैंडीकैप चाहिए !!

https://dotnetfiddle.net/FNDt0E

using System;
using System.Linq;
using System.Text;

public class Program
{

    public static void Main()
    {
        var l = "Hello World";

        var r = "Red Who Loll";

        var y = new Func<string,string>(s => new String(s.ToLower().Replace(" ","").OrderBy(v => v).ToArray()));
        var z = new Func<string,string,Func<string,string>,bool>((w,x,f) => f(w) == f(x));
        var o = z(l, r, y);


        Console.WriteLine("{0} & {1} are anagram: {2}",l, r, o);


                Console.WriteLine("C#, {0} bytes", Encoding.Unicode.GetByteCount(@"var y = new Func<string,string>(s => new String(s.ToLower().Replace("" "","""").OrderBy(v => v).ToArray()));
    var z = new Func<string,string,Func<string,string>,bool>((w,x,f) => f(w) == f(x));"));

    }

}

4
प्रोग्रामिंग पहेलियाँ और कोड गोल्फ में आपका स्वागत है! सामान्य नियम यह है कि अपनी भाषा को अपने पोस्ट की हेडलाइन में अपनी बाइट की गिनती के साथ रखें। आप #पहली पंक्ति में अग्रणी जोड़कर ऐसा कर सकते हैं । साथ ही कोड-गोल्फ प्रश्नों के लिए आपके प्रोग्राम को गोल्फ करना आवश्यक है। शुरुआत के लिए आपको आवश्यक व्हाट्सएप को हटाना चाहिए और एकल-वर्ण चर नामों का उपयोग करना चाहिए। इसके अलावा, आप हमेशा कुछ और बाइट्स को बचाने के लिए एक पूर्ण कार्यक्रम (जब तक स्पष्ट रूप से निषिद्ध नहीं) के बजाय एक फ़ंक्शन का उपयोग कर सकते हैं।
डेनकर

@DenkerAffe आप निंजा मुझे चाहते हैं :)
बिल्ली

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