निर्धारित करें कि क्या तार एनाग्राम हैं


85

चुनौती

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

उदाहरण

इनपुट

शब्द, गलत

यह वापस लौटता है trueक्योंकि वे समान हैं लेकिन सिर्फ तले हुए हैं।

इनपुट

शब्द, wwro

यह लौटता है false

इनपुट

नाव, तोबा

यह लौटता है true

नियम

यहाँ नियम हैं!

  • मान लें कि इनपुट कम से कम 1 चार्ट लंबा और 8 वर्णों से अधिक लंबा नहीं होगा।
  • कोई विशेष वर्ण नहीं, केवल a-z
  • सभी इनपुट को लोअरकेस माना जा सकता है

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

boat, boat = true
toab, boat = true
oabt, toab = true
a, aa = false
zzz, zzzzzzzz = false
zyyyzzzz, yyzzzzzy = true
sleepy, pyels = false
p,p = true

10
13 विचारों में 9 उत्तर ... वाह!
टॉम गुलेन

@ टॉम, क्योंकि हर कोई यह साबित करना चाहता था कि 64-बिट पूर्णांक का उपयोग करने के बारे में आपकी टिप्पणी गलत दिशा में इशारा कर रही थी: P
पीटर टेलर

5
शीर्षक अनुरोध: कॉड एल्फ, गो!

5
"फाल्कन रेज, पागल हो जाओ!"
भूतकाल

7
मेरा नाम सुझाव: "क्या वे विपर्यय हैं" → "सरणियों का प्रबंधन करें"
Esolanging Fruit

जवाबों:


39

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

f=lambda a,b,S=sorted:S(a)==S(b)

3
@ डिबंजन, यह def f(a,b):return sorted(a)==sorted(b)व्यापार के समान ही है कि आपको किसी भी बयान का उपयोग नहीं करने के बदले में लैम्ब्डा के साथ
डिफ

1
@ डिबंजन, मुझे लगता है कि यह केवल आपको एक चरित्र बचाता है। मैंने यहां एक भिन्नता का उपयोग किया है, लेकिन यह आपकी जैसी ही लंबाई के साथ काम करता है क्योंकि मैं अल्पविराम के लिए एक नई
रूपरेखा तैयार करता हूं

4
@ टॉमस, बकवास। सवाल पूरा कार्यक्रम निर्दिष्ट नहीं करता है, इसलिए या तो एक फ़ंक्शन या एक पूरा कार्यक्रम स्वीकार्य है।
gnibbler

2
@ टॉमा, यहां के अधिकांश उत्तर आपके मानदंड को पारित करने में विफल होते हैं। उन सभी को एक उत्थान क्यों नहीं दिया जाता है?
gnibbler

4
@ टोमास, यह दुरुपयोग का नियम नहीं है। कुछ प्रश्न जानबूझकर खुले हैं जैसे यह प्रतीत होता है। इस तरह एक अच्छी तरह से निर्दिष्ट प्रश्न के साथ तुलना करें । प्रश्न शिकायत आप इन उत्तरों पसंद नहीं है प्रश्नकर्ता
gnibbler

27

गोल्फस्क्रिप्ट, 3 वर्ण?

$$=

उपयोग:

'boat'$'baot'$=
1

'toab'$'boat'$=
1

'oabt'$'toab'$=
1

'a'$'aa'$=
0

'zzz'$'zzzzzzzz'$=
0

'zyyyzzzz'$'yyzzzzzy'$=
1

'sleepy'$'pyels'$=
0

'p'$'p'$=
1

23
यह इनपुट की आपूर्ति करने के तरीके की एक दिलचस्प व्याख्या है :)
gnibbler

4
स्पष्टीकरण कृपया :(
st0le

10
@ st0le, गंभीरता से? मैं गोल्फस्क्रिप्ट नहीं जानता, लेकिन यह स्पष्ट रूप से $ (सॉर्ट), $ (सॉर्ट), = (तुलना)
पीटर टेलर

11
क्या यह धोखा नहीं है? मेरा मतलब है, यह परिवर्तनशील इनपुट नहीं है। इसे हार्ड-कोड करना होगा। किसी भी स्थिति में, मैं उद्धरण ( ') वर्णों के लिए वर्ण संख्या में 4 जोड़ दूंगा ।
थॉमस एडिंग जूल 30'11

6
यह हमारे वर्तमान नियमों द्वारा मान्य नहीं है। हालाँकि, आप इसे @ JanDvorak के 4-बाइट फ़ंक्शन में बदल सकते हैं, जो एक मान्य इनपुट प्रारूप के माध्यम से इनपुट को स्वीकार करेगा ।
दरवाज़े

20

जे, 8

-:&(/:~)

लिटरली, मैच ( -:) ऑन ( &) सॉर्ट अप ( /:~)

नमूना उपयोग:

   'boat' -:&(/:~) 'boat'
1
   'toab' -:&(/:~) 'boat'
1
   'oabt' -:&(/:~) 'toab'
1
   'a' -:&(/:~) 'aa'
0
   'zzz' -:&(/:~) 'zzzzzzzz'
0
   'zyyyzzzz' -:&(/:~) 'yyzzzzzy'
1
   'sleepy' -:&(/:~) 'pyels'
0
   'p' -:&(/:~) 'p'
1

64-बिट पूर्णांक प्ले में कहां आते हैं?


क्या J में फ़ंक्शन / सबरूटीन्स लिखना संभव नहीं है?

2
@ टिम नॉर्डेनफ़र: उन्हें "क्रिया" कहा जाता है, और (दाता) के v argरूप में arg1 v arg2( दाईं ) या दोनों तरफ ( दाईं ओर) के रूप में उनके तर्क पर या तो एक तर्क लेते हैं । जो मैंने प्रस्तुत किया वह स्पष्ट रूप से एक रंग है। मैंने इसे नाम देने की जहमत नहीं उठाई, क्योंकि यह अनुरोध नहीं था और इस तरह से कम है। क्या आप वास्तव में इसे एक नाम देना चाहते हैं, तो आप इसे इस तरह से करेंगे: is_anagram_of =: -:&(/:~)और फिर इसका उपयोग करें 'a' is_anagram_of 'aa'
जेबी

कोड में तर्कों को प्रतिस्थापित करने के लिए यह थोड़ा सस्ता लगा, लेकिन अब मैं देखता हूं कि यह अनिवार्य रूप से एक रंग है। कोई बात नहीं।

29
जे हमेशा एक इमोटिकॉन फैक्टरी विस्फोट के अवशेष की तरह दिखता है।
6

19

जावास्क्रिप्ट, 192 157 152 147 125 बाइट्स

ठीक है, इनमें से कुछ भाषाएं मेरे विचार से बहुत अधिक लचीली हैं! वैसे भी मुझे लगता है कि यह लंबा तरीका है, लेकिन कम से कम एक अलग तकनीक।

दबा हुआ

पीटर और डेविड को धन्यवाद और अधिक आकर्षण बाहर निचोड़ने के लिए!

for(a=[j=p=2];j<123;)a[j]?p%a[++j]<1&&p++&&(j=0):(a[j]=p,j=0);function b(c,i){return c[i=i||0]?a[c.charCodeAt(i)]*b(c,++i):1}

फिर करो:

alert(b("hello")==b("elloh"));

विस्तारित कोड

संपीड़ित में बहुत सारे परिवर्तन हुए हैं, लेकिन यह मूल सिद्धांत है:

// Define dictionary of primes
a = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101];

// Returns the unique ID of the word (order irrelevant)
function b(c) {
    r = 1;
    for (i = 0; i < c.length; i++)
        r *= a[c[i].charCodeAt(0) - 97];
    return r
}

alert(b("hello") == b("hlleo"));

Primes का उपयोग कर महान विचार।

@ धन्यवाद! अब यह घटकर 157 रह गया है।
टॉम गुलेन

2
आप छलनी का उपयोग करके शब्दकोश प्रथमाक्षर से कुछ वर्णों को शेव कर सकते हैं। a=[2];for(p=3,j=0;j<26;)if(a[j]){if(p%a[j++]==0){p++;j=0}}else{a[j]=p;j=0}
पीटर टेलर

1
@ टॉम, इस बात पर निर्भर करता है कि छँटाई दिनचर्या को कितनी अच्छी तरह से अनुकूलित किया गया है, यह देखते हुए कि आपने 8 वर्णों तक सीमित इनपुट दिए हैं: P
पीटर टेलर

1
125 अक्षर । रिकर्सन और टर्नीज़ एफटीडब्ल्यू:for(a=[j=p=2];j<123;)a[j]?p%a[++j]<1&&p++&&(j=0):(a[j]=p,j=0);function b(c,i){return c[i=i||0]?a[c.charCodeAt(i)]*b(c,++i):1}
डेविड मर्डोक

15

गोल्फस्क्रिप्ट, 8 बाइट्स

यह नामक एक फ़ंक्शन को परिभाषित करता है A

{$\$=}:A

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

;
'boat' 'boat' A
'toab' 'boat' A
'oabt' 'toab' A
'a' 'aa' A
'zzz' 'zzzzzzzz' A
'zyyyzzzz' 'yyzzzzzy' A
'sleepy' 'pyels' A
'p' 'p' A

11

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

फ़ंक्शन - 31

import List
f=(.sort).(==).sort

कार्यक्रम - 81 58 55

import List
g=sort`fmap`getLine
main=(`fmap`g).(==)=<<g

उपयोग:

$ runghc anagram.hs
boat
boat
True
$ runghc anagram.hs
toab
boat
True
$ runghc anagram.hs
a
aa
False

कुडोस से लैम्बडाबोट और उसके पॉइंटफ्री रिफ़ैक्टरिंग


क्या हास्केल कोड जो केवल रनघक के तहत चाहता है, लेकिन जब संकलित किया जाता है, तब भी "प्रोग्राम" कहा जा सकता है?
JB

3
@ जेबी: क्या पर्ल कोड जो केवल उसी के तहत चाहता perlहै, उसे "प्रोग्राम" कहा जा सकता है? :-)
जॉय एडम्स

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

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

2
x#y=sort x==sort y१ चरित्र छोटा है
Rotsor

10

सी #, 129 चर

namespace System.Linq{class X{static void Main(string[]a){Console.Write(a[0].OrderBy(_=>_).SequenceEqual(a[1].OrderBy(_=>_)));}}}

पठनीय:

namespace System.Linq
{
    class X
    {
        static void Main(string[] a)
        {
            Console.Write(a[0].OrderBy(_ => _)
                  .SequenceEqual(a[1].OrderBy(_ => _)));
        }
    }
}

मुझे लगता है कि आप using System.Linq;इसे नाम स्थान देने के बजाय कुछ बाइट्स गोल्फ कर सकते हैं ?
स्टैकस्टक

10

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

पीटर टेलर्स पर्ल समाधान की IO योजना का उपयोग करना:

p gets.chars.sort==gets.chars.sort

एक त्रुटि फेंकता है:-e:1:in '<main>': undefined method 'chars' for nil:NilClass (NoMethodError)
टॉमस

9

सी कार्यक्रम, ११ C

t[52],i;main(c){for(;i<52;)(c=getchar())<11?i+=26:t[i+c-97]++;
for(i=27;--i&&t[i-1]==t[i+25];);puts(i?"false":"true");}

1
कभी IOCCC के लिए आवेदन करने पर विचार किया जाता है ?
मतीन उल्हाक

9
@ मंटू: क्या आपने आईओसीसी में कुछ देखा है? यह उस तरह से पठनीय है।
आर। मार्टिनो फर्नांडीस

@Martinho हाँ, IOCCC स्रोत कोड बहुत सुंदर हैं। सिंफ़नीज़। लेकिन उसे कम से कम एक छोटे टुकड़े की रचना करने की कोशिश करनी चाहिए। :)
मातेन उल्हाक

@ मंटू: मुझे नहीं पता था कि वे अभी भी सक्रिय थे।
जोए एडम्स

1
बस यह एक देखा ... बहुत अच्छा। लेकिन कम हो सकता है: t[256],i;main(c){for(;c+3;)(i=getchar())>10?t[i]+=c:(c-=2);for(i=257;--i&&!t[i-1];);puts(i?"false":"true");}- यह 108 वर्ण है। बहुत महत्वपूर्ण बात, आपकी cइनिशियलाइज़ेशन ट्रिक अभी भी नियोजित है।
ugoren

7

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

(पूरा कार्यक्रम, अन्य पर्ल जवाब के विपरीत जो केवल एक फ़ंक्शन है)

($c,$d)=map{[sort split//]}<>;print"@$c"eq"@$d"?true:false

एक समारोह के रूप में 49

sub f{($c,$d)=map{[sort split//]}<>;"@$c"eq"@$d"}

बेशक, आप प्रोग्राम में 4 "चार्ट्स को सही और गलत को हटाकर बचा सकते हैं , क्योंकि सख्त / चेतावनियों का उपयोग किए बिना एक नंगे तार एक स्ट्रिंग है।
जोएल बर्जर


मैं इसे ($c,$d)=map{[sort split//]}@ARGV;exit("@$c"ne"@$d")(51 वर्णों) के रूप में पसंद करता हूं ताकि यह कमांड लाइन तर्क ले सके और कमांड लाइन निकास कोड का उपयोग कर सके। यह <>एक बहु-लाइन इनपुट के साथ 48 चार्ट बनाए रखना होगा ।
एडम काट्ज

6

क्लोजर - 23 वर्ण

एक अनाम फ़ंक्शन के रूप में:

#(apply = (map sort %))

टेस्ट केस का उदाहरण:

(#(apply = (map sort %)) ["boat" "boat"])
=> true

कूल, मुझे यह पसंद है।
चिरोन डे

1
अच्छा जवाब। मैं विशेष रूप से आपके द्वारा चुने गए टेस्ट स्ट्रिंग्स को पसंद करता हूं ;-)
coredump

6

जावास्क्रिप्ट

@ ZzzzBov के समाधान पर आधारित है।

तुलना, 65 वर्ण (बिना कार्य के 40)

function f(a,b){return a.split('').sort()==b.split('').sort()+""}

तुलनित्र, 43 वर्ण

function f(a){return a.split('').sort()+""}

चतुर +""तार का उपयोग करने के लिए चतुर ।
केसी चू

6

सी ++ (104 गैर-डब्ल्यूएस चार्ट)


गिनती के आधार पर। नोट: एक ही लंबाई के तारों को मानता है, जो प्रश्न द्वारा निहित (हालांकि कहा नहीं गया) प्रतीत होता है।

int u[123], i;

int a(char **c) {
    for(; c[0][i]; ) {
        u[c[0][i]]++;
        u[c[1][i++]]--;
    }

    i=123;
    while(i && !u[--i]);
    return !i;
}

सी में, यदि आप वैश्विक दायरे में एक चर घोषित करते हैं, तो इसे शून्य से शुरू किया जाता है। मुझे लगता है कि यह C ++ के लिए भी सही है।
जॉय एडम्स

दूसरी ओर, स्थानीय चर, स्वचालित रूप से शून्य पर आरंभीकृत नहीं होते हैं ।
जॉय एडम्स

ठीक है, मैंने अपने कैविएट को हटा दिया क्योंकि मुझे इसके बिना करने के तरीके मिले।
मैथ्यू पढ़ें

1
Bzzzt। आप परीक्षण मामलों को पास करते हैं, लेकिन "हेल" और "होलो" स्पष्ट रूप से समान हैं। आसान सुधार: ++ में से एक को a में बदलें। तब बस अगर (u [i ++]) 0 वापस करें;
डेव गैंबल

1
मैंने इसका परीक्षण नहीं किया है, लेकिन अंतिम तीन पंक्तियों के रूप में लिखा जा सकता हैi=123;while(i&&u[--i]);return!i;
st0le

4

PHP (कमांड लाइन, 87 अक्षर)

function d($s){
    return array_count_values(str_split($s));
}

echo d($argv[1]) == d($argv[2]);

4

जावास्क्रिप्ट

@ ZzzzBov के समाधान का ए (बहुत) थोड़ा कम संस्करण, जो .join()स्ट्रिंग बॉक्सिंग के बजाय उपयोग करता है :

function a(b,c){return b.split('').sort().join()==c.split('').sort().join()}
alert(a('abc','bca')); //true

इसी तरह:

function a(b){return b.split('').sort().join()}
alert(a('abc')==a('bca')); //true

3
यह उत्तर ID 1337 है। congratz
TheDoctor

4

क्लोजर REPL 41 वर्ण

(= (sort (read-line)) (sort (read-line)))

स्टैक एक्सचेंज नेटवर्क में आपका स्वागत है। स्वरूपण सहायता यहाँ
dmckee

4

जावा

(सभी की पसंदीदा भाषा स्पष्ट रूप से!)

173 वर्ण:

import java.util.*;class g{public static void main(String[]p){String[]a=p[0].split(""),b=p[1].split("");Arrays.sort(a);Arrays.sort(b);System.out.print(Arrays.equals(a,b));}}

(Println से 2 वर्णों को बचाने के लिए newline char प्रिंट नहीं करता है)

संकलित करें और चलाएं:

javac g.java
java -cp . g abcdef fedcba
true

एक छोटे से एक को देखने के लिए प्यार ...


मुझे पता है कि यह 6.5 वर्ष (लोल) से अधिक हो गया है, लेकिन आप इसे 10 बाइट्स में जोड़ सकते हैं java.util.Arrays x=null;और x.इसके बजाय उपयोग कर सकते हैं Arrays.: class g{public static void main(String[]p){java.util.Arrays x=null;String[]a=p[0].split(""),b=p[1].split("");x.sort(a);x.sort(b);System.out.print(x.equals(a,b));}}( 163 बाइट्स ) और इसे जावा 8 में परिवर्तित करके, जैसा भी class g{public static void mainहो सकता है interface g{static void main, लेकिन मुझे लगता है कि जावा 8 वॉन 2011 में अभी तक के आसपास नहीं है, इसलिए रखने classभी ठीक है। ; पी
केविन क्रूज़सेन

4

sed, 45 वर्ण

यह मेरे पसंदीदा में भी संभव है - sed! विपर्यय को हल करने के लिए बस एक नियमित अभिव्यक्ति ! बस संबंधित अक्षरों को हटाते रहें:

:
s/(.)(.*,.*)\1/\2/
t
/\w/{i\false
d}
i\true

(साथ दिया जाना -nE)

पर्ल, ४ Per

1while s/(.)(.*,.*)\1/\2/;$_=/\w/?"false":"true"

के साथ लागू किया जाना है -p

पर्ल फ़ंक्शन, 39

sub f{$,while s/(.)(.*,.*)\1/\2/;!/\w/}

4

एपीएल, 2 चार्ट

≡⍦

यह वह जगह है मल्टीसेट मैच से समारोह Nars2000 , अग्रणी बढ़त एपीएल कार्यान्वयन में से एक। जब स्ट्रिंग्स पर लागू किया जाता है, तो यह आवश्यक फ़ंक्शन की गणना करता है:

      'elvis' ≡⍦ 'lives'
1
      'alec guinness' ≡⍦ 'genuine class'
1

बस जिज्ञासु, यह कितने बाइट्स है? 4? 6?
माल्टेन

यह एन्कोडिंग पर निर्भर करता है। यूटीएस -8 में 6 बाइट्स, यूसीएस -2 में 4 बाइट्स, 2 बाइट्स यदि कोई भी लीगेसी सिंगल-बाइट एपीएल चार्सेट्स का प्रतीक है, जिस पर मुझे संदेह है।
टोबिया

4

05AB1E , 6 4 बाइट्स (गैर-प्रतिस्पर्धात्मक)

{I{Q

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

इनपुट कठिनाइयों के कारण इसमें कुछ समय लगा। पॉप की वजह से नीचे गिरा।

स्पष्टीकरण:

{I{Q    Original code

{       Takes first input e.g. word and sorts -> 'dorw'
 I      Takes second input e.g. 'wrdo'
  {     Sorts second input -> 'dorw'
   Q    Compare if sorted 1 = sorted 2, then print result. 'dorw' = 'dorw', so prints 1.

1
चूंकि 05AB1E इस चुनौती से नया है, इसलिए यह उत्तर गैर-प्रतिस्पर्धात्मक है।
लवजो

क्षमा करें - एहसास नहीं हुआ।
जेनो रैकिन एशर

4

पर्ल, 77 75 चार्ट

समस्या का I / O अच्छी तरह से निर्दिष्ट नहीं है; यह स्टडिन से दो पंक्तियों को पढ़ता है और stdout को सही या गलत आउटपुट करता है

sub p{join'',sort split'',$a}$a=<>;$x=p;$a=<>;print$x eq p()?"true":"false"

(77 के लिए टिम के लिए धन्यवाद -> 75)


कुछ गड़बड़ है। $a=;? इसके अलावा, आप sortऔर के अंतरिक्ष के बाद छोड़ सकते हैं print

@ टिम, जीनियस जिन्होंने नेट पर कोड साझा करने के लिए इस प्लेटफ़ॉर्म को विकसित किया, ने फैसला किया कि कोड ब्लॉक में लोगों को कम-से-कम वर्णों से बचना चाहिए। लेकिन हे, कोई बड़ी बात नहीं: ऐसा नहीं है कि कोई भी उन्हें कोड में उपयोग करता है, है ना? मुझे पकड़ता रहता है।
पीटर टेलर

2
ठीक है, मैं नीचे हटा दिया। आप भविष्य में कोड स्वरूपण यानी चार स्थानों के साथ इंडेंट कोड का उपयोग करना चाह सकते हैं।

1
ठीक है, इसलिए कोडिंग कोड (एक इनलाइन और दो ब्लॉक) के तीन तरीके हैं , और दोनों ब्लॉक अलग-अलग तरीकों से असुविधाजनक हैं। आह।
पीटर टेलर

4

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

यह फ़ंक्शन स्ट्रिंग्स को तर्क के रूप में लेता है और सही या गलत देता है।

sub f{my@a;for$.(1,-1){$a[ord]+=$.for split//,pop}!grep{$_}@a}

किसी सरणी में ASCII मूल्यों को संग्रहीत करता है और जांचता है कि क्या यह बाहर निकलता है। पहले शब्द के लिए वेतन वृद्धि और दूसरे शब्द के लिए वेतन वृद्धि।


4

पायथन 3, 107 97 76 64

s=sorted;a,b=input().split(', ')
print(str(s(a)==s(b)).lower())

जाहिर है कि इसे छोटा किया जा सकता है अगर हम ओपी के शब्दों को शब्दशः नहीं लेते हैं और "सच" और "असत्य" को कम करते हैं ...


यदि आप संलग्न आप कुछ वर्ण बंद दाढ़ी कर सकते हैं ;s=sortedपहली पंक्ति के लिए और फिर के दो उदाहरणों की जगह sortedके साथ sदूसरी पंक्ति में। बचाना चाहिए ... 3 अक्षर?
एलेक्स वैन एलवाईई

1
वास्तव में। पायथन 3 भी थोड़ा सा स्थान बचाता है, और शायद अब उपयोग करने के लिए उचित है, इस उत्तर को पोस्ट करने के 5 साल बाद। इसके अलावा, .strip () निरर्थक था, निर्दिष्ट इनपुट दिए गए थे।
Wooble

हाँ क्षमा करें। मैंने ध्यान नहीं दिया कि जब यह टिप्पणी की गई थी, तब यह सवाल कितना पुराना था, केवल यह कि यह फ्रंटपेज पर था। ^^;
एलेक्स वान एलवाईई

4

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

p=sorted
f=lambda a,b:p(a)==p(b)

अजगर में कुछ भी नहीं है। क्या आप सुनिश्चित हैं कि यह एक संपूर्ण कार्यक्रम है जो इनपुट लेता है और आउटपुट का अनुरोध करता है?
टॉमस

1
@ टॉमास यह एक फ़ंक्शन है
TuxCrafting


4

आर , 54 बाइट्स

function(x,y,`~`=sort,`+`=utf8ToInt)identical(~+x,~+y)

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


मैं utf8ToInt के आपके उपयोग से अत्यधिक प्रभावित हूं, न केवल इस उत्तर में, बल्कि कई अन्य में जो मैंने देखा है।
सुमेर

1
क्या आपने R में गोल्फिंग के लिए टिप्स देखी हैं ? utf8ToIntऔर इसके उल्टे पारंपरिक कार्यों की तुलना में छोटे स्ट्रिंग-विभाजन के लिए बनाते हैं।
जे डे

3

REPL में स्काला (32)

readLine.sorted==readLine.sorted

स्काला फ़ंक्शन (43)

def f(a:String,b:String)=a.sorted==b.sorted

स्काला कार्यक्रम (61)

object A extends App{println(args(0).sorted==args(1).sorted)}

ये स्कैला की एक साफ-सुथरी विशेषता का लाभ उठाते हैं, जिसमें एक स्ट्रिंग को पात्रों के अनुक्रम के रूप में भी माना जा सकता है ( Seq), सभी ऑपरेशन Seqउपलब्ध होने के साथ।


3

एपीएल - 13 वर्ण

{(⍺[⍋⍺])≡⍵[⍋⍵]}

इस तरह से कॉल करें:

      'boat' {(⍺[⍋⍺])≡⍵[⍋⍵]} 'baot'
1
      'baot' {(⍺[⍋⍺])≡⍵[⍋⍵]} 'boat'
1
      (,'a') {(⍺[⍋⍺])≡⍵[⍋⍵]} 'aa'
0

अंतिम उदाहरण में, 'a'एक एकल वर्ण का प्रतिनिधित्व करता है, और उपसर्ग ,इसे एक स्ट्रिंग में बदल देगा।


3

जावा (134 बाइट्स)

int[][]c=new int[2][26];
for(int i=0;i<2;i++)for(byte a:args[i].getBytes())c[i][a-97]++;
System.out.print(Arrays.equals(c[0],c[1]));`

यह प्रत्येक अक्षर के प्रकट होने की संख्या को गिनने के लिए एक सरणी बनाता है, और फिर एरे की तुलना करने के लिए जांचता है कि क्या वे समान हैं।


1
PPCG में आपका स्वागत है! अच्छी पहली पोस्ट! ऐसे 2 स्थान हैं जिन्हें आप निकाल सकते हैं, (c[0], c[1])और for (int i=0;
R

3

जावास्क्रिप्ट, 41

तुलना समारोह (41) :

a=b=>''+[...b].sort()
b=(c,d)=>a(c)==a(d)
alert(b('abc', 'cba')) // true

तुलनित्र समारोह (21) :

a=b=>''+[...b].sort()
alert(a('abc') == a('bca')); //true

तुलनित्र समारोह (48):

function a(b){return String(b.split('').sort())}
alert(a('abc')==a('bca')); //true

तुलना समारोह (78):

function a(b,c){return String(b.split('').sort())==String(c.split('').sort())}
alert(a('abc','bca')); //true

मान लिया गया Stringहै splitऔर Arrayहै sort


38 बाइट्स:c=>d=>(a=b=>''+[...b].sort())(c)==a(d)
शायरु असाकोतो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.