পাসওয়ার্ড বিশপ সদ্ব্যবহার


10

থেকে উদ্ভূত এই , এখন মোছার পর, পোস্ট।

একটি স্ট্রিং দেওয়া হয়েছে, উত্তর দিন (সত্যবাদী / মিথ্যা বা দুটি ধারাবাহিক মান) যদি এটি একটি ভাল বিশপ পাসওয়ার্ড গঠন করে, যা নিম্নলিখিত সমস্ত শর্ত পূরণ করার সময় হয়:

  1. এটির কমপক্ষে 10 টি অক্ষর রয়েছে

  2. এটির কমপক্ষে 3 টি সংখ্যা ( [0-9])

  3. এটি কোনও প্যালিনড্রোম নয় (বিপরীত হলে নিজের কাছে অভিন্ন)

আপনার কোডটি ভাল বিশপের পাসওয়ার্ড হলে আপনি 0 বাইট বোনাস পান।

সতর্কতা: প্রকৃত পাসওয়ার্ড শক্তির পরিমাপ হিসাবে বিশপ সদৃশতা ব্যবহার করবেন না !

উদাহরণ

ভাল বিশপ পাসওয়ার্ড

PPCG123GCPP
PPCG123PPCG
PPCG123gcpp
0123456789
Tr0ub4dor&3

ভালো বিশপ পাসওয়ার্ড নয়

PPCG123 (খুব সংক্ষিপ্ত)
correct horse battery staple (পর্যাপ্ত অঙ্ক নয়)
PPCG121GCPP (প্যালিনড্রোম)
 (খুব সংক্ষিপ্ত এবং পর্যাপ্ত সংখ্যা নয়)
abc121cba (খুব সংক্ষিপ্ত এবং প্যালিনড্রোম)
aaaaaaaaaaaa (প্যালিনড্রোম এবং পর্যাপ্ত অঙ্কগুলি নেই)
abc99cba (সমস্ত কিছু ভুল))


@ ক্রাইস্টোস ওভারলর্ড এই শব্দটিকে এই চ্যালেঞ্জেই সংজ্ঞায়িত করা হয়েছে। ;
পি

9
ওহ, আমি কিছু দাবা লজিক পাসওয়ার্ডের নিয়মের প্রত্যাশা করছিলাম…
বার্গি

1
আমি সমস্ত উত্তর পড়েছি এবং একটিও বোনাস দাবি করেনি।
ভেস্কাহ

1
আপনি যদি এই সত্যিকারের বোনাসের জন্য যোগ্যতা অর্জন করেন তবে @ জেডিএল আপনি সত্যিই আপনার স্কোর থেকে 0 বাইট বাদ দেবেন! তুমি কিসের জন্য অপেক্ষা করছো?
অ্যারন

1
আপনার মানদণ্ডগুলির মধ্যে একটি হ'ল বিশপ (2013) প্রস্তাবিতের বিপরীত। তিনি প্রস্তাব দিয়েছিলেন যে পাসওয়ার্ডগুলি অবশ্যই 10 টি বর্ণ বা তার চেয়ে কম হবে, বেশি নয়।
পাইরুলেজ

উত্তর:


5

পাইথন 2 , 61 59 54 51 বাইট

lambda s:sum(map(str.isdigit,s))>2<s[:9]<s<>s[::-1]

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

-5 বাইটস, এরিক দ্য আউটগল্ফার
-3 বাইট, xnor ধন্যবাদ



@ এরিকথ আউটগলফার ধন্যবাদ :)
টিফিল্ড

আপনি দৈর্ঘ্য চেকটি করতে পারেন s[:9]<s, যা নন-প্যালিনড্রোম s[:9]<s!=s[::-1]
চেকটির

@ এক্সনোর ধন্যবাদ :)
টিফিল্ড

4

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

gT@Iþg3@IÂÊP

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

ব্যাখ্যা:

g      # Get the length of the (implicit) input
 T@    # Check if this length >= 10
Iþ     # Get the input and only leave the digits
  g    # Then get the length (amount of digits)
   3@  # And check if the amount of digits >= 3
IÂ     # Get the input and the input reversed
  Ê    # Check if they are not equal (so not a palindrome)
P      # Check if all three above are truthy (and output implicitly)

4

জাপট , 17 14 বাইট

ʨA&U¦Ô&3§Uè\d

@ শেগি দ্বারা -3 বাইটগুলি পুনরায় সাজানো

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


জাপট , 15 বাইট (0 বাইট বোনাস: ভি)

ʨ10&U¦Ô&3§Uè\d

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


1
Dang! আমার নিজের শুরু করার আগে সমাধানগুলি পরীক্ষা করা উচিত ছিল! 14 বাইট
শেগি

4

আর , 80 70 62 64 63 বাইট

any(rev(U<-utf8ToInt(scan(,'')))<U)&sum(U>47&U<58)>2&sum(U|1)>9

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

DigEmAll থেকে এবং কিছু পুনরায় সাজানোও

sum((s<-el(strsplit(scan(,''),"")))%in%0:9)>2&!all(s==rev(s))&s[10]>''

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

খুব সোজা, এখানে কোনও বাস্তব আশ্চর্যজনক কৌশল নয়। ব্যবহারকারীর ইনপুট স্ট্রিংয়ের পরে:

  • 2 টিরও বেশি সংখ্যার জন্য স্ট্রিং পৃথক করে এবং অনুসন্ধান করে। (3 বা ততোধিক সংখ্যক)
  • সমস্ত উপাদান স্ট্রিংয়ের বিপরীত সংস্করণের সমান নয় কিনা তা পরীক্ষা করে (প্যালিনড্রোম)
  • দৈর্ঘ্য 9 (10 বা ততোধিক অক্ষর) এর চেয়ে বেশি

আমার মনে হয় আপনি প্রতিস্থাপন করতে পারেন !all(s==rev(s))সঙ্গে any(s!=rev(s))যা এক বাইট সংরক্ষণ করতে হবে। আমার মনে হচ্ছে দৈর্ঘ্যের ncharsum(x|1)
চেকটিও

1
প্রকৃতপক্ষে, আমি মনে করি any(s>rev(s))কাজ করবে --- যদি কোনও চরিত্রটি তার প্যালিনড্রোমিক কাউন্টার পার্টের চেয়ে কম হয়, তবে পাসওয়ার্ডের অন্য প্রান্তে রূপান্তরটি সত্য হবে। এটি অন্য একটি বাইট সংরক্ষণ করে।
জেডিএল


1
@ ডিগেম আপনার সমস্ত উদাহরণ সত্য হয় যখন কেবলমাত্র একটি সংখ্যা থাকে, আপনাকে একটি অন্তর্ভুক্ত করতে হবে>2
হারুন হেইম্যান


3

এপিএল + উইন, 36, 30 29 বাইট

7 বাইট সংরক্ষণ করা অ্যাডম ধন্যবাদ

সূচকের উত্স = 0

ইনপুট স্ট্রিংয়ের জন্য অনুরোধ জানানো হয়

(10≤⍴v)×(3≤+/v∊∊⍕¨⍳10)>v≡⌽v←⎕

এটি অনলাইন চেষ্টা করুন! সৌজন্যে ডায়ালগ ক্লাসিক

ব্যাখ্যা:

(10≤⍴v) Length test pass 1 fail 0

(3≤+/v∊∊⍕¨⍳10) Number of digits test

>v≡⌽v Palindrome test

কোডটি বোনাসের জন্যও যোগ্যতা অর্জন করে কারণ এটি একটি ভাল বিশপের পাসওয়ার্ড।


@ অ্যাডাম। 6 বাইট সংরক্ষণ করার জন্য ধন্যবাদ। আমি এই বিষয়ে রাজি হয়েছি। V≡⌽v ভাল কাজ করে যদি আমি prep। এক্স এর ব্যবহার হিসাবে আমি বুলিয়ান পরীক্ষাগুলি একসাথে স্ট্রিং করার সময় এটি ব্যবহার করতে ঝোঁক। বাইট একই ফলাফল।
গ্রাহাম

তোমার কাছে যা আছে ~? এবং যদি আপনি না থাকলে, আপনি মার্জ করতে পারবেন ×~মধ্যে>
আদম

@ অ্যাডম না আমি নেই ≢ আমি আরও একটি বাইটের জন্য × ~> কে মার্জ করতে পারি। ধন্যবাদ। আমি ভয় করি আমার "পপিং গেম" এর জন্য আরও অনুশীলন প্রয়োজন;)
গ্রাহাম

3

ব্র্যাচল্যাগ , 18 12 বাইট

টিপসের জন্য ধন্যবাদ, ক্রপ্পেব এবং ফ্যাটালাইজ !

¬↔?l>9&ịˢl>2

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

ব্যাখ্যা

প্রোগ্রামটি একটি একক শিকারী, দুটি অংশের সমন্বয়ে জড়িত &

প্রথম:

¬       The following assertion must fail:
 ↔        The input reversed
  ?       can be unified with the input
        Also, the input's
   l    length
    >9  must be greater than 9

দ্বিতীয়ত:

 ˢ     Get all outputs from applying the following to each character in the input:
ị        Convert to number
       This gives an integer for a digit character and fails for a non-digit, so
       we now have a list containing one integer for each digit in the password
  l    Its length
   >2  must be greater than 2

{∋.∈Ị∧}ᶜহতে পারে{∋ị}ᶜ
ক্রপ্পেব

প্রথমে "প্যালিনড্রোম নয়" বিধি স্থাপন করা এবং অঙ্কগুলি নির্বাচন করার পদ্ধতি পরিবর্তন করে আপনি 6 বাইট সংরক্ষণ করতে পারেন:¬↔?l>9&ịˢl>2
ফ্যাটালাইজ করুন

@ ক্রপবেব ওহ, আকর্ষণীয়! আমি বিবেচনা করি নি , তবে এটি উপলব্ধি করে যে চরিত্রটি যদি একটি অঙ্ক হয় তবে এটি সফল হবে। ধন্যবাদ!
ডিএলস্ক

@ ফ্যাটালাইজ আহা - এর ?মতো পুনঃব্যবহার করা ঝরঝরে। ধন্যবাদ!
ডিএলস্ক


2

জাভা 8, 92 বাইট

s->s.length()>9&s.replaceAll("\\D","").length()>2&!s.contains(new StringBuffer(s).reverse())

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

ব্যাখ্যা:

s->                        // Method with String parameter and boolean return-type
  s.length()>9             //  Check if the length of the input-String is more than 9
  &s.replaceAll("\\D","")  //  AND: remove all non-digits from the input-String
    .length()>2            //       and check if the amount of digits is more than 2
  &!s.contains(new StringBuffer(s).reverse())
                           //  AND: check if the input-String does NOT have the reversed
                           //       input-String as substring (and thus is not a palindrome)



2

1
ভাল. এখন আপনি এটিকে ট্রেনে পরিণত করে গল্ফ করতে পারেন: (9<≢)∧(3≤1⊥∊∘⎕D)∧⊢≢⌽এবং তারপরে প্যারেন্সগুলি এড়াতে পুনরায় সাজিয়ে আরও একটি বাইট সংরক্ষণ করুন: (9<≢)∧≢∘⌽⍨∧3≤1⊥∊∘⎕Dআপনার যদি এই পদক্ষেপগুলির ব্যাখ্যা দরকার হয় তবে তাদের জানান।
অ্যাডম



1

রেটিনা 0.8.2 , 40 বাইট

G`.{10}
G`(\d.*){3}
+`^(.)(.*)\1$
$2
^..

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

G`.{10}

কমপক্ষে 10 টি অক্ষর পরীক্ষা করে।

G`(\d.*){3}

কমপক্ষে 3 ডিজিটের জন্য পরীক্ষা করে দেখুন।

+`^(.)(.*)\1$
$2

মিললে প্রথম এবং শেষ অক্ষরটি সরান।

^..

যদি কমপক্ষে 2 টি অক্ষর থাকে তবে এটি কোনও প্যালিনড্রোম ছিল না।

.NET এর ভারসাম্যপূর্ণ গোষ্ঠীগুলির অর্থ হ'ল এটি একটি একক নিয়মিত অভিব্যক্তিতে করা যেতে পারে তবে এটিতে 47 বাইট লাগে:

^(?!(.)*.?(?<-1>\1)*$(?(1).))(?=.{10})(.*\d){3}

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে।



1

পাইথন 3 , 74 72 64 বাইট

-২ বাইটের জন্য ধন্যবাদ নিল এ !
ধন্যবাদ জো কিং -8 বাইটের জন্য!

lambda s:s[9:]and re.findall('\d',s)[2:]and s[::-1]!=s
import re

ব্যাখ্যা:

lambda s: # Create lambda                                          
           s[9:] # Check if the string is at least 10 characters long                                 
                     and re.findall('\d',s)[2:] #Check for at least 3 matches of the regex \d (which matches all digits)
                     and s[::-1] != s # Check if the string reversed is equal to the string (palindrome test)
import re  # Import regex module

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



1

পার্ল 6 , 32 বাইট

{$_ ne.flip&&m:g/\d/>2&&.comb>9}

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

নামবিহীন কোড ব্লক যা কেবলমাত্র সমস্ত বিধি মেনে চলে তা কার্যকর করে।

ব্যাখ্যা:

{          &&         &&       }  # Anonymous code block
 $_ ne.flip                       # Input is not equal to its reverse
             m:g/\d/>2            # There are more than two digits
                        .comb>9   # There are more than 9 characters

1

কে (ওকে) , 31 28 বাইট

-3 বাইট ধন্যবাদ এনএনজি!

{(x~|x)<(2<#x^x^/$!10)*9<#x}

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


1
আপনি +//(যোগফল অবধি) +/+/যোগফল (যোগফলের যোগফল) এর পরিবর্তে ব্যবহার করতে পারেন
ngn

1
অন্যথা, আপনি ব্যবহার করতে পারে x^x^yদুটি তালিকা মধ্যে ছেদ দেখুন: #x^x^,/!10। এই সংক্ষিপ্ত করা যেতে পারে #x^x^/!10( ^"ছাড়া" হয় x^/... হয় ^প্রাথমিক মান -reduction x)
ngn

1
আরও একটি জিনিস, >(বা <) "এবং না" হিসাবে ব্যবহার করা যেতে পারে:{(x~|x)<(2<#x^x^/$!10)*9<#x}
ngn

@ জিএনএন আপনাকে ধন্যবাদ! ছেদটি খুঁজে পাওয়ার দুর্দান্ত উপায়!
গ্যালেন ইভানভ



0

পিপ , 19 বাইট

#a>9&XD Na>2&aNERVa

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

ব্যাখ্যা

সঙ্গে a প্রথম কম্যান্ড-লাইন যুক্তি হচ্ছে:

#a > 9      Length of a is greater than 9
&           and
XD N a > 2  Number of matches of regex [0-9] iN a is greater than 2
&           and
a NE RV a   a is not (string-)equal to reverse of a


0

পাইথ, 17 বাইট

&&<2l@`MTQ<9lQ!_I

এটি এখানে অনলাইনে চেষ্টা করুন , বা এখানে সমস্ত পরীক্ষার কেস একবারে যাচাই করুন

&&<2l@`MTQ<9lQ!_IQ   Implicit: Q=eval(input()), T=10
                     Trailing Q inferred
      `MT            [0-10), as strings
     @   Q           Take characters from input which are in the above
    l                Length
  <2                 Is the above greater than 2?
            lQ       Length of Q
          <9         Is the above greater than 9?
               _IQ   Is Q unchanged after reversal?
              !      Logical NOT
&&                   Logical AND the three results together

0

গ্রোভি, (47 বাইট)

{p->p=~/.{10}/&&p=~/(\d.*){3}/&&p!=p.reverse()}

(বোনাস অন্তর্ভুক্তি পাঠকের অনুশীলন হিসাবে ছেড়ে গেছে)

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