এই শনাক্তকারীদের সমতুল্য?


20

নিম ভাষায় , সনাক্তকারীদের আলাদা করার নিয়মগুলি অন্যান্য অন্যান্য ভাষার চেয়ে কিছুটা বেশি স্বাচ্ছন্দ্যযুক্ত । দুটি শনাক্তকারী সমতুল্য বা একই ভেরিয়েবলের ঠিকানা দেয় যদি তারা এই নিয়মগুলি অনুসরণ করে :

  • উভয়ের প্রথম চরিত্রটি একই (সংবেদনশীল ক্ষেত্রে)
  • উভয় স্ট্রিং একই (কেস মধ্যে সংবেদনশীল) মুছে ফেলার পরে সমস্ত উদাহরণ অক্ষরের -এবং_

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম / ফাংশন লিখুন যা নিম শনাক্তকারীদের প্রতিনিধিত্ব করে এবং উপরের নিয়মগুলির দ্বারা তারা সমতুল্য কিনা তা ভিত্তিতে সত্য বা মিথ্যা মান আউটপুট দেয় দুটি স্ট্রিং নেয় takes

বিশেষ উল্লেখ

  • স্ট্যান্ডার্ড আই / ও বিধি প্রযোজ্য
  • স্ট্যান্ডার্ড সমস্যা হয় নিষিদ্ধ
  • স্ট্রিং হবে শুধুমাত্র হওয়া ASCII printables ধারণ । আপনি না যদি এটি একটি বৈধ আইডেন্টিফায়ার এর চেক করতে হবে।
  • স্ট্রিংগুলি দুটি পৃথক ইনপুট, স্ট্রিংগুলির তালিকা ইত্যাদি হিসাবে নেওয়া যেতে পারে (আপনি ড্রিল জানেন)
  • খালি স্ট্রিংগুলি পরিচালনা করার দরকার নেই
  • সত্য এবং মিথ্যা মান উভয়ের জন্য আউটপুট অবশ্যই সামঞ্জস্যপূর্ণ হতে হবে
  • এই চ্যালেঞ্জটি সমস্ত ভাষায় স্বল্পতম পদ্ধতির সন্ধান সম্পর্কে নয়, বরং এটি প্রতিটি ভাষায় স্বল্পতম পদ্ধতির সন্ধান সম্পর্কে ।
  • আপনার কোডটি বাইকে স্কোর করা হবে , সাধারণত এনকোডিং ইউটিএফ -8 এ অন্যথায় নির্দিষ্ট না করা হয়।
  • এই টাস্কটি সম্পাদনকারী অন্তর্নির্মিত ফাংশনগুলিকে অনুমতি দেওয়া হয়েছে তবে বিল্ট-ইন-এ নির্ভর করে না এমন সমাধান সহ উত্সাহ দেওয়া হচ্ছে।
  • এমনকি "ব্যবহারিক" ভাষার জন্য ব্যাখ্যাগুলি উত্সাহিত করা হয়

পরীক্ষার মামলা

Input                                    Output

count, Count                             falsey
lookMaNoSeparator, answer                falsey
_test, test                              falsey
test, tset                               falsey
aVariableName, a_variable_name           truthy
numbers_are_cool123, numbersAreCool123   truthy
symbolsAre_too>_>, symbols_areTOO>>      truthy

অবহেলিত রেফারেন্স বাস্তবায়ন

এটি নিমে নিজেই লেখা আছে।

import strutils, re

proc sameIdentifier(a, b: string): bool =
  a[0] == b[0] and
    a.replace(re"_|–", "").toLower == b.replace(re"_|–", "").toLower

3
আমি একটি পরীক্ষার কেস প্রস্তাব f("_test", "test")
ডুরকনব

পছন্দ করেছেন
সম্পূর্ণরূপে

1
আমি যুক্ত করার পরামর্শ দিই f("test", "tset"), কারণ আমি মনে করি যে একটি উত্তর এর জন্য একটি অপ্রত্যাশিত ফলাফল দেয়।
janর্জন জোহানসেন

@ Janর্জনজাহানসেন হয়ে গেছে।
সম্পূর্ণরূপে

অপেক্ষা করুন, সুতরাং ইনপুটটি এমন স্ট্রিং যা "নিম সনাক্তকারীকে উপস্থাপন করে", এবং আমাদের "এটি বৈধ শনাক্তকারী কিনা তা খতিয়ে দেখার দরকার নেই", তবে তার মধ্যে একটি উদাহরণ রয়েছে >?
Aschapler

উত্তর:


7

জাভাস্ক্রিপ্ট (ES6), 62 61 বাইট

1 জোড়কর্লসনকে ধন্যবাদ 1 বাইট সংরক্ষিত

বাক্য গঠন সিনট্যাক্সে ইনপুট নেয় (a)(b)। একটি বুলিয়ান ফেরত দেয়।

a=>b=>(r=s=>s[0]+s.replace(/-|_/g,'').toUpperCase())(b)==r(a)

পরীক্ষার মামলা


1
/-|_/gএকটি বাইট সংরক্ষণ করুন
জোহান কার্লসন

6

পাইথন 3 , 76 বাইট

lambda a,b:f(*a)==f(*b)
f=lambda f,*r:[f+k.lower()for k in r if~-(k in'-_')]

এটি অনলাইন চেষ্টা করুন!

নটজাগানকে -1 বাইট ধন্যবাদ
-৩ বাইট উইথ উইজার্ডকে ধন্যবাদ



@ নটজাগান ঝরঝরে কৌশল; ধন্যবাদ!
হাইপারনিউটারিনো

@ নটজাগান আমি জানতাম না যে আপনি এটি করতে পারবেন তবে আমি অনুমান করি এটি দুর্দান্ত, দুর্দান্ত
স্টিফেন



4

আসলে , 15 বাইট

⌠p"-_"(-Σùo⌡M═Y

এটি অনলাইন চেষ্টা করুন!

মজাদার ঘটনা: এটি যে কোনও সংখ্যক ইনপুটগুলির সাথে কাজ করে (এটি সর্বদা 2 টিরও কম ইনপুটগুলির জন্য সত্যবাদী দেয়)।

ব্যাখ্যা:

⌠p"-_"(-Σùo⌡M═Y
⌠p"-_"(-Σùo⌡M    for each input:
 p                 separate the first character
  "-_"(-           remove all dashes and underscores from the rest of the string
        Σù         concatenate the list from the last operation and lowercase the string
          o        append it to the first character
             ═Y  are none of the elements unique?


3

05 এ বি 1 ই , 12 বাইট

εćs„-_SKl«}Ë

এটি অনলাইন চেষ্টা করুন!

-1 আদনানকে ধন্যবাদ ।

তাত্ত্বিকভাবে, εćs„-_-«}Ë10 বাইটের জন্য কাজ করা উচিত ছিল, তবে দুর্ভাগ্যক্রমে এই আচরণটি আপাতত হ্রাস করা হয়েছে।


ওহ হ্যাঁ, আমাকে এখনও এটি ঠিক করতে হবে। „-_SKপরিবর্তে ব্যবহার করে আপনি একটি বাইট সংরক্ষণ করতে পারেন '-K'_K
আদনান

@ আদনান এবং আমি জানতাম যে একটি উপায় আছে। ধন্যবাদ!
এরিক দি আউটগল্ফার

আপনি যদি 11 বাইট পরিবর্তন SKকরেন м
কেভিন ক্রুইজসেন 11'18

@ কেভিন ক্রুজসেন এইচএম, আমি এই উত্তরটি আপডেট করব। আমার মনে হয় мনা এর আগে আবার অস্তিত্ব ছিল। : পি
এরিক আউটগল্ফার

3

জেলি , 11 বাইট

ḟ⁾-_Œl,Ḣµ€E

এটি অনলাইন চেষ্টা করুন!

-২ বাইটস এরিক দি আউটগল্ফারকে
ধন্যবাদ -১ বাইট ধন্যবাদ জোনাথন অ্যালানকে


দুটি স্ট্রিংয়ের মতো একটি তালিকা নিন ["symbolsAre_too>_>", "symbols_areTOO>>"]এবং এর Ḣ;ḟ⁾-_Œl$µ€Eপরিবর্তে -2 এর জন্য ব্যবহার করুন। সেই পাইথকে মার!
এরিক আউটগল্ফার

... বা এমনকি ḟ⁾-_Œl,Ḣµ€E11 বাইটের জন্য।
জোনাথন অ্যালান

কোনও সমস্যা নেই, হতে পারে এরিক 2 এবং 1 এর জন্য আমার ক্রেডিট করুন
জোনাথন অ্যালান

@ জোনাথান অ্যালান আহ। ভাল ধারণা; আমি এটি করব :)
হাইপার নিউট্রিনো

3

রুবি , 86 64 63 61 51 বাইট

f=->x{x[0]+x.upcase.delete("-_")}
->x,y{f[x]==f[y]}

এটি অনলাইন চেষ্টা করুন!

এটি সত্যিই দীর্ঘ অনুভূত এখনও কিছুটা দীর্ঘ অনুভব করে। আমি এটিকে কমপক্ষে কিছুটা খাটো করে তুলতে সেখানে যে কোনও রুবি গুরুকে সাহায্য করার প্রশংসা করব।


গুরু নয়, তবে আমি স্ট্রিং পদ্ধতির তালিকাটি দেখে অনুপ্রেরণা পেয়েছি । .delete("_-")খাটো হয়।
janর্জন জোহানসেন

f[x]f.call(x)ছুরিকাঘাতী ল্যাম্বডাস জড়িত থাকার জন্য সর্বদা একটি বৈধ প্রতিস্থাপন ।
মান কালি

@ ভালুআইঙ্ক ধন্যবাদ! আমি স্ট্যাক ওভারফ্লো উত্তরগুলির উপর ভিত্তি করে রুবিতে কীভাবে গল্ফ করব তা জানার চেষ্টা করছি, তাই আমি জানতাম না যে এটি একটি বিকল্প ছিল।
গম উইজার্ড

3

সি ++, 288 248 বাইট

-5 বাইট জ্যাকারি ধন্যবাদ

#include<string>
#include<algorithm>
#define E(a,v)a.erase(std::remove(a.begin(),a.end(),v),a.end());
#define F(a)for(auto&c:a)c=toupper(c);
int e(std::string&a,std::string&b){if(a[0]!=b[0])return 0;E(a,45)E(b,45)E(a,95)E(b,95)F(a)F(b)return a==b;}

আপনাকে ধন্যবাদ, প্রিপ্রসেসর। এছাড়াও, এই কোডটি সি ++-তে বুলের কাছে ইন্টি কাস্ট করার নিয়মটি ব্যবহার করে ofint_var!=0


;সংজ্ঞা পরে একটি যোগ করুন F। তারপরে, প্রথম returnবিবৃতিটি এতে পরিবর্তন করুন return 0;E(a,45)E(b,45)E(a,95)E(b,95)F(a)F(b)
জাকারি

2

সিজোম, 20 বাইট

{_"-_"f-:el:=\:c:=*}

["স্ট্রিং 1", "স্ট্রিং 2"] আকারে ইনপুট নেয়।

এটি অনলাইনে ব্যবহার করে দেখুন (পরীক্ষার সংস্করণ)

{
_      e# make copy of input
"-_"f- e# remove all "-" and "_" from both words in copy
:el    e# convert words in copy to lowercase
:=     e# 1 if both words in copy are equal, 0 if not
\      e# move original version of input to top of stack
:c     e# convert each word in original input to only 1st character
:=     e# 1 if both characters from original input are equal, 0 if not
*      e# multply the two numbers we obtained. If and only if both are 1 (true) we return 1 (true)
}

2

হাস্কেল , 85 78 76 71 68 বাইট

2 বাইট সংরক্ষণ করেছেন অর্জান জোহানসেনকে ধন্যবাদ

import Data.Char
s(a:x)=a:[toLower a|a<-x,all(/=a)"-_"]
x!y=s x==s y

এটি অনলাইন চেষ্টা করুন!

খালি স্ট্রিং এ ত্রুটি।


all(/=a)"-_"। এছাড়াও আপনার সর্বশেষ সম্পাদনার পরে fঅপারেটর হওয়া দরকার।
janর্জন জোহানসেন

@ Janর্জনজাহানসেন আহঃ ধন্যবাদ আমি ভেবেছিলাম এখানে করার একটি ছোট উপায় আছে notElemতবে আমি আমার জীবনের জন্য এটি মনে করতে পারি না।
গম উইজার্ড


2

এক্সেল, 105 বাইট

=AND(CODE(A1)=CODE(B1),SUBSTITUTE(SUBSTITUTE(A1,"_",""),"-","")=SUBSTITUTE(SUBSTITUTE(B1,"_",""),"-",""))

কোড () প্রথম অক্ষরের সংখ্যাসূচক কোড দেয়।

এক্সেলের স্ট্রিং তুলনা ক্ষেত্রে সংবেদনশীল।


2

হুশ , 13 বাইট

¤=§,←(m_ω-"-_

এটি অনলাইন চেষ্টা করুন!

প্রতিটি স্ট্রিংয়ের জন্য একটি জোড় তৈরি করে যেখানে স্ট্রিংয়ের প্রথম অক্ষর এবং পুরো স্ট্রিংটি নিম্নতর হয় এবং - / _ সরানো সমস্ত ঘটনাসমূহ থাকে। তারপরে দুটি জোড়া সমান কিনা তা পরীক্ষা করে দেখুন।

একটি বৈশিষ্ট্য -হুস্টে পার্থক্য নির্ধারণ করা হয় (যেমন এটি পাওয়া যায় এমন প্রথম উপস্থিতিটি সরিয়ে দেয়): সমস্ত উপস্থিতিগুলি সরাতে, এর নির্দিষ্ট পয়েন্টটি -"-_পাওয়া যায় ω-"-_


2

জাপট , 14 25 বাইট

g ¥Vg ©Uu k"_-" ¥Vu k"_-"

শব্দ 2 থেকে সমস্ত অক্ষর 1 শব্দ 1 থেকে এবং অক্ষরগুলি সরিয়ে কেস-সংবেদনশীল স্ট্রিং সমতা পরীক্ষা করে -_; ""শব্দগুলি সমান হলে এটি একটি খালি স্ট্রিংয়ের ফলাফল দেয় ( )।
এর সাথে সমস্যাটি নির্দেশ করার জন্য Ørjan জোহানসেনকে ধন্যবাদ।

প্রথম-চর সমতা পরীক্ষা করে এবং বড় হাতের ইনপুটগুলি অপসারণের পরে সমান হলে _-

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

অন্তর্নিহিত ইনপুট: Uএবং Vইনপুট স্ট্রিংগুলি

g ¥Vg

U(অন্তর্নিহিত) প্রথম বর্ণটি ( ¥) এর প্রথম চরকের সমান কিনা তা পরীক্ষা করে দেখুন V

©Uu k"_-" ¥Vu k"_-"

এবং ( ©) চেক করুন U, বড়হীন ( u) এবং _-সরানো ( k) সহ, সমান ( ¥) সমান V। সুস্পষ্টভাবে বুলিয়ান ফলাফল প্রদান।


আমি কাজের লিঙ্কটি পেতে পারি না, তবে এই ব্যাখ্যাটি শোনা যাচ্ছে যা এটি ভুল কাজ করে। এটা কি দিতে না testবনাম tset?
janrjan জোহানসেন

@ আরজান জোহেনসেন ভাল কথা ... এটি সেই ক্ষেত্রে ব্যর্থ হবে। লিঙ্ক হিসাবে, আমি এটি পরীক্ষা করেছি এবং এটি দুর্দান্ত কাজ করে।
জাস্টিন মেরিনার 0

হ্যাঁ লিঙ্কটি আমার নিজের দোষ - এই দিনগুলির একটির মধ্যে আমার একটি আধুনিক ব্রাউজারে পরিবর্তন দরকার। অনলাইনে এটি ব্যবহার করে
janrjan জোহানসেন

@ JanrjanJohansen আপনি কি ব্রাউজার ব্যবহার করছেন তা আমি জিজ্ঞাসা করতে পারি? আমি সেই কোডপেনটিকে উন্নত করার প্রক্রিয়াধীন এবং এটি টিআইওর মতো উপযুক্ত করতে চাই।
জাস্টিন মেরিনার

কাশি এখনও ইন্টারনেট এক্সপ্লোরার ব্যবহার করে।
janrjan জোহানসেন

1

পাইথন 2 , 79 73 বাইট

-6 বাইটস @ নোটজাগানকে ধন্যবাদ: সমস্ত হ্রাস নামের সেটটির দৈর্ঘ্য 1 বা না পরীক্ষা করুন।

lambda*l:len({x[0]+re.sub('-|_','',x[1:].lower())for x in l})<2
import re

এটি অনলাইন চেষ্টা করুন!



অবশ্যই, সেট, আমি তার অস্তিত্ব ভুলে গেছি !! অনেক ধন্যবাদ!!
অফিসিয়ালাইম

1

পার্ল 5 , 67 বাইট

s/.//,push@a,$&,y/_-//dr for<>;say($a[0]eq$a[2]&&lc$a[3]eq lc$a[1])

এটি অনলাইন চেষ্টা করুন!

সনাক্তকারীদের আলাদা লাইনগুলিতে ইনপুট হিসাবে নেয়।

ব্যাখ্যা:

s/.//,             # remove the first character
push@a,            # storage space, even positions are first character
                   # odd positions are remainder
$&,                # implicit variable holding last matched pattern (first char)
y/_-//dr           # Remove _ and - from remainder of input
for<>;             # iterate over all input lines
say                # output
($a[0]eq$a[2]&&    # check that first character is identical and
lc$a[3]eq lc$a[1]) # so is the lowercase version of the rest


1

কাঠকয়লা , 29 বাইট

∧⁼§θ⁰§η⁰⁼↧⪫⪪⪫⪪θ_ω-ω↧⪫⪪⪫⪪η_ω-ω

এটি অনলাইন চেষ্টা করুন!

এটি -সত্যের পক্ষে এবং মিথ্যার পক্ষে কিছুই মুদ্রণ করে না।

ভার্বোজ সংস্করণে লিঙ্ক । এটি প্রথমে উভয় ইনপুট স্ট্রিং ( ⁼§θ⁰§η⁰) এর প্রথম অক্ষরটির তুলনা করে এবং তারপরে আন্ডারস্কোরগুলি এবং হাইফেনগুলি ( ⪫⪪⪫⪪θ_ω-ω) সরানোর পরে এবং লোয়ারকেস ( ) এ রূপান্তর করার পরে উভয় স্ট্রিংয়ের অন্যান্য অংশের সাথে তুলনা করে ।


1

সি #, 101 89 বাইট

string g(string s)=>string.Concat(s.ToUpper().Split('-','_'));f=>s=>f[0]==s[0]&g(f)==g(s)

@ Kusi581 ধন্যবাদ 12 বাইট সংরক্ষণ করা।


যদি আপনি একটি স্থানীয় ফাংশন ব্যবহার করেন তবে আপনি string.Concat(...)2 বাইট সংরক্ষণ করতে পারবেন;)
kusi581

1
@ kusi581 ধন্যবাদ, 12 বাইট সংরক্ষণ করা।
TheLethalCoder



1

সি (জিসিসি) , 126 114 বাইট

#define p(s)do++s;while(*s==45||*s==95);*s>95?*s-=32:0;
f(char*a,char*b){while(*a&&*a==*b){p(a)p(b)}return*a==*b;}

এটি অনলাইন চেষ্টা করুন!

সাদা স্থান এবং মন্তব্য সহ:

#define p(s)                   // Define helper macro p           \
    do ++s;                    // Increment pointer at least once \
    while (*s==45 | *s==95);   // and past any '-' or '_'         \
    *s>95 ? *s -= 32 : 0;      // If lowercase letter, convert to upper

f(char* a, char* b) {          // Define main function f
    while (*a && *a == *b) {   // Loop until end of either string
                               // or a difference found
        p(a)                   // Transform pointer and one char
        p(b)                   // via helper p above
    }
    return *a==*b;             // Test chars equal (on success, both '\0')
}

প্রশ্নটি ASCII প্রিন্টেবলগুলি নির্দিষ্ট করে, তাই (1) প্রথম whileপরীক্ষাটি সংক্ষিপ্ত করা যায় *s%50==45। (২) তবে, লোয়ারকেসিংটি ভুল, যেমন এটি t~বনাম প্রতি ব্যর্থ হয় t^
janrjan জোহানসেন

@ আরজান জোহানসেন আমি ভেবেছিলাম যে ইনপুটগুলি উভয়ই বৈধ শনাক্তকারী। তবে তার সাথে সেই উদাহরণটি >যুক্ত হয়েছিল, হুম।
aschepler

হাহ। আমিও সেই উদাহরণ দিয়ে যাচ্ছিলাম। নিম ম্যানুয়ালটিতে এখন দেখার জন্য , এমনকি -আসলে অনুমোদিত নয়, তবে অ্যালগরিদম এখনও এতে অন্তর্ভুক্ত রয়েছে ...
janrjan জোহানসেন

@ আরজান জোহানসেন হ্যাঁ, আমি লক্ষ্য করেছি -যে সনাক্তকারীটির ব্যাকরণ বর্ণনায় নেই - তবে তারপরে নথির অন্যান্য অংশগুলিতে এটি অনুমোদিত হয়েছে।
aschepler

1

ডায়ালগ এপিএল, 47 32 28 27 26 22 বাইট

-4 বাইট কৃতিক্সী লিথোসকে ধন্যবাদ

{(=/⊃¨⍵)∧≡/819⌶⍵~'-_'}   

স্ট্রিংগুলির তালিকা হিসাবে ইনপুট নেয়।

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

{(=/⊃¨⍵)∧≡/819⌶⍵~'-_'}
               ⍵~'-_'   Remove '-' and '_'
           819⌶         Lowercase
         ≡/             Equality between elements
        ∧               And
 (=/⊃¨⍵)                The first element of each element is equal

আমি মনে করি আপনি করতে পারেন ⊃⍺=⍵ পরিবর্তে এটি⍺[1]=⍵[1]
ক্রিটসি লিথোস

না, কারণ তর্কগুলি অন্য দৈর্ঘ্যের হতে পারে!
জাকারি

1
সেক্ষেত্রে, ⊃⍵পরিবর্তে ⍵[1]কাজ করা উচিত
Kritixi Lithos

1
এমনকি এমনকি ⊃⍺=⊃⍵ পরিবর্তে⍺[1]=⍵[1]
ক্রিটিকি লিথোস

1

কমন লিস্প, 98 বাইট

(lambda(x y)(and(eql(elt x 0)(elt y 0))(string-equal(#1=remove #\-(#1##\_ y))(#1##\-(#1##\_ x)))))

এটি অনলাইন চেষ্টা করুন!

অবহেলিত (সুপার সোজা!) সংস্করণ:

(defun f(x y)
  (and (eql (elt x 0) (elt y 0))         ; check if initial characters are identical
       (string-equal                     ; string comparison (case insensitive)
         (remove #\- (remove #\_ y))     ; remove from both strings the unwanted chars
         (remove #\- (remove #\_ x)))))

1

আর , 76 বাইট

function(l)(g=substr(l,1,1))[1]==g[2]&(h=tolower(gsub('-|_','',l)))[1]==h[2]

বেনামে ফাংশন যা দুটি স্ট্রিংয়ের তালিকা হিসাবে ইনপুট নেয়। আর এর স্ট্রিং ক্রিয়াকলাপগুলি বেশ কয়েকটি দীর্ঘ অক্ষরে থাকা অবস্থায় ভেক্টরাইজড রয়েছে এর সত্যতা গ্রহণ করে। অতিরিক্তভাবে প্রথম বন্ধনীগুলিতে একটি কার্য মোড়কগুলি ভেরিয়েবলকে আবদ্ধ করবে, সুতরাং (g=substr(l,1,1))পরের লাইনে আবার একইভাবে ব্যবহার করার জন্য একটি ভেরিয়েবল ধরে রাখে h

আর শেষ মূল্যায়িত এক্সপ্রেশনটি ফাংশন আউটপুট হিসাবে প্রদান করে।

Ungolfed:

function(l){
  g <- substr(l,1,1)
  h <- tolower(gsub("_|-","",l))
  (g[1]==g[2])&(h[1]==h[2])
}

এটি অনলাইন চেষ্টা করুন! (সমস্ত পরীক্ষার কেস)


1

ব্র্যাচল্যাগ , 17 বাইট

hᵛ&{{¬∈"_-"&ụ}ˢ}ᵛ

এটি অনলাইন চেষ্টা করুন!

ভবিষ্যদ্বাণীপূর্ণ সাফল্য / ব্যর্থতার মাধ্যমে ফলাফলগুলি।

h                    The first element
 ᵛ                   is the same for each element of the input,
  &                  and
   {           }ᵛ    for each element of the input the following are the same:
    {      &ụ}ˢ      every element uppercased which satisfies the condition that
     ¬∈              it is not an element of
       "_-"          the string "_-".

0

এরলং 113 বাইট

A=fun(L)->string:to_lower(lists:flatten(string:tokens(L,"-_")))end,fun([C|D],[C|E])->A(D)==A(E);(_,_)->a==b end.

দুটি তালিকার তুলনা করে এমন এক নামী ফাংশন pair এরেল শেলের মধ্যে আটকে দেওয়া।

আরও পঠনযোগ্য:

A=fun(L) ->
    string:to_lower( % case insensitive
        lists:flatten( % squash all characters back into one list
            string:tokens(L,"-_") % return a list of list of characters
        )
    )
end.
fun([C|D],[C|E]) -> % are the first characters exactly the same?
    A(D)==A(E); % does the rest compare correctly?
   (_,_) -> % first chars not the same
    a==b % shorter than 'false'
end.

0

ক্লিপ , 25 বাইট

&=(x(y=AxAy[Aa--m.L`a'-'_

ব্যাখ্যা :

x, yএবং zতিনটি ইনপুট সুস্পষ্টভাবে নিতে একটি ক্লিপ প্রোগ্রামে উল্লেখ করা যেতে পারে। যেহেতু এই প্রোগ্রামটি কেবলমাত্র রেফারেন্স করে xএবং তাই yএটিতে দুটি ইনপুট লাগে যা নির্ধারিত xএবং y

 =(x(y                    First characters of x and y are equal
&                         And
      =AxAy               A(x) == A(y)
           [Aa            Function A, takes parameter a
                m.L`a     Map all elements of a to lower case
              --     '-'_ Remove all occurrences of '-' and '_'

স্ট্যান্ডার্ড ইনপুট, আউটপুট 1এবং 0যথাক্রমে সত্য এবং মিথ্যা জন্য দুটি স্ট্রিং নেয় ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.