ডিলার ডেকে পুনর্নির্মাণে সহায়তা করুন


19

ডিলারটি তার ডেকের মধ্যে কী কার্ড রয়েছে এবং কোন কার্ডগুলি অনুপস্থিত রয়েছে তার ট্র্যাকটি খালি এবং হারিয়ে গেছে, আপনি কি তাকে সাহায্য করতে পারবেন?


একটি সম্পূর্ণ ডেকে 52 টি প্লে কার্ড থাকে, যথা:

ডেকের প্রতিটি রঙে (হৃদয়, হীরা, কোদাল, ক্লাব) থাকে:

  • সংখ্যাগুলি [2 - 10]
  • একটি জ্যাক
  • একটি রানী
  • এক রাজা
  • একটি টেক্কা

কার্য

আপনার প্রোগ্রামটি নতুন লাইন না পড়া পর্যন্ত STDIN থেকে ডেকের সামগ্রীগুলি পড়বে। আপনি ধরে নিতে পারেন যে ইনপুটটি "এনএক্স এনএক্স এনএক্স এনএক্স এনএক্স" ইত্যাদি আকারে হবে যেখানে:

  • n - [2 - 10] এর মধ্যে যে কোনও সংখ্যা বা 'জে', 'কিউ', 'কে' বা 'এ' এর । (আপনি কেবলমাত্র অ-সংখ্যাযুক্ত অক্ষরের জন্য উপরের কেসটি ধরে নিতে পারেন)
  • এক্স - নিম্নলিখিতগুলির মধ্যে যে কোনও একটি: 'এইচ', 'ডি', 'এস', 'সি' (আপনি কেবল উচ্চতর ক্ষেত্রে ধরে নিতে পারেন)

কোথায়:

  • 'জে' = জ্যাকস
  • 'প্রশ্ন' = রানী
  • 'কে' = কিং
  • 'এ' = এস

এবং

  • 'এইচ' = হৃদয়
  • 'ডি' = হীরা
  • 'এস' = স্পেডস
  • 'সি' = ক্লাব

আপনি ধরে নিতে পারেন ইনপুটটিতে কোনও সদৃশ থাকবে না।

আপনার প্রোগ্রামটি অবশ্যই ডেকের অনুপস্থিত কার্ডগুলি প্রিন্ট করতে হবে ইনপুট ("এনএক্স এনএক্স এনএক্স") এর মতো একই ফ্যাশনে বা "সমস্ত নিখুঁত কার্ডগুলি মুদ্রণ করবে না" যদি সমস্ত 52 টি কার্ড সরবরাহ করা থাকে তবে মুদ্রণ করতে হবে। কার্ডগুলির আউটপুট ক্রমের কোনও বাধা নেই।

উদাহরণ ইনপুট:

9H AH 7C 3S 10S KD JS 9C 2H 8H 8C AC AS AD 7D 4D 2C JD 6S

আউটপুট:

3H 4H 5H 6H 7H 10H JH QH KH 2D 3D 5D 6D 8D 9D 10D QD 2S 4S 5S 7S 8S 9S QS KS 3C 4C 5C 6C 10C JC QC HC

শুভ গল্ফিং!


3
আমরা এর Tপরিবর্তে ব্যবহার করতে পারি 10?
আরনাউল্ড

@ আরনাউল্ড আমি ভয় করি ডিলার আমাকে যে তথ্য দিয়েছিল তা এটিই আপনাকে 10 'র সাথে থাকতে হবে অথবা তিনি মুডি হয়ে যাবেন।
সোমব্রেরো চিকেন

@ গিলবেটস যদিও Jউপস্থাপন করে না 10?
Okx

@Okx 2 3 4 5 6 7 8 9 10 J Q K AJপ্রতিনিধিত্ব করে 11
হাইপারনিউটারিনো

@ অক্স Jহ'ল বর্ণমালার দশম অক্ষর, তবে এটি এটি সম্পর্কে নয়। :)
mbomb007

উত্তর:


8

উইন্ডোজ ব্যাচ (সিএমডি), 205 204 বাইট

@set/pc=
@set d=
@for %%s in (H D S C)do @for %%r in (2 3 4 5 6 7 8 9 10 J Q K A)do @call set d=%%d%% %%r%%s
@for %%c in (%c%)do @call set d=%%d: %%c=%%
@if "%d%"=="" set d= No missing cards
@echo%d%

স্যুটগুলির উপরে লুপ এবং সম্পূর্ণ ডেক তৈরির স্থানগুলি পরে ইনপুট কার্ডগুলি মুছে দেয়। Tপরিবর্তে অনুমতি পেলে 1 বাইট সংরক্ষণ করুন 10। কমান্ড-লাইন আর্গুমেন্ট গ্রহণযোগ্য ইনপুট হলে 11 বাইট সংরক্ষণ করুন। সম্পাদনা: @ ব্যবহারকারী 202729- কে 1 টি বাইট সংরক্ষণ করা হয়েছে।


আমি 200 বাইট গণনা।
হাইপারনিউটারিনো

@ হাইপারনিউট্রিনো আমি যেমন উইন্ডোতে আছি, ফাইল সংরক্ষণের জন্য আমি নোটপ্যাড ব্যবহার করি, যার অর্থ নিউলাইনগুলি একটির পরিবর্তে আমার জন্য 2 বাইট ব্যয় করে। বাইটস সংরক্ষণ করতে আমি আলাদা সম্পাদক ব্যবহার করতে খুব অলস।
নীল

ওহ হ্যাঁ ঠিক আছে। সাব্লাইম টেক্সট ব্যবহার করে আমি 200 বাইট পেয়েছি।
হাইপারনিউটারিনো

উইন্ডোজে নিল আপনি সিআর এলএফ এর পরিবর্তে এলএফ ব্যবহার করতে পারবেন, পাঁচটি বাইট সাশ্রয় করবেন (উপরের হাইপার নিউট্রিনো মন্তব্য) এবং এটি এখনও কার্যকর।
ব্যবহারকারী 202729

এছাড়াও, আপনি /vসিএমডি (+3 বাইট?) এ পাস করতে পারবেন EnableDelayedExpansion, callলুপের জন্য মুছে ফেলতে । / মনে হচ্ছে আপনার (%c%)এবং এর মধ্যে একটি অতিরিক্ত জায়গা আছে do?
ব্যবহারকারী 202729

8

পাইথন, 147 146 145 138 131 129 127 125 120 বাইট

print(' '.join(set(`x`+y for x in range(2,11)+list('JQKA')for y in'HDSC')-set(raw_input().split()))or'No missing cards')

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

-1 বাইট আমার কোডে একটি অতিরিক্ত স্থান নির্দেশ করে mbomb007 ধন্যবাদ। -2 যে আমি এটা গলফ নিচে করতে পারেন ইশারা জন্য Datastream ধন্যবাদ বাইট আরও বেশি যদি আমি (মুদ্রণ পরে বাম বন্ধনী জন্য +2, -4 জন্য পাইথন 3 আবার ... স্যুইচ ) -5 ইশারা জন্য Lulhum ধন্যবাদ এবং নিজেকে বাইট পাইথন 2 (!!!) এ ফিরে যাওয়ার মাধ্যমে আমাকে বাইটস সংরক্ষণ করতে সাহায্য করতে পারে (আবার ব্যাপ্তি ব্যবহার করে, ব্যাকটিকগুলি পরিবর্তে ব্যবহার করে)
-1 কিছু golfing ইশারা জন্য mbomb007 যে পাইথন 2 কাজ করা যেতে পারে (-5 বাইট এবং জন্য +4 বাইট বাইট ধন্যবাদ raw_মধ্যে raw_input)
-7 সেট এবং তালিকা comprehensions পরিবর্তে সেট বিয়োগ ব্যবহার পাল্টানোর দ্বারা বাইট
-7 বাইট ValueInk ধন্যবাদ আমি listসুইট দরকার নেই তা
-2 বাইটের নির্দেশ করার
জন্য ডেটাস্ট্রিমকে ধন্যবাদ জানাতে যে আমার আগে যে অদ্ভুত জিনিস ছিল তার চেয়ে সমস্ত মান লিখতে বেশি বাইট-কার্যকর - 2 বাইটকে ভ্যালুআইঙ্ককে নির্দেশ করার জন্য ধন্যবাদ সেটগুলি জেনারেটর নিতে পারে তাই আমার এটি তালিকা তালিকার মধ্যে রাখার দরকার নেই
raw_
str( এবং +4 এর কারণে raw_)


1
আপনার অপসারণ করতে পারে এমন একটি অতিরিক্ত জায়গা রয়েছে এবং আপনি ব্যবহার করতে পারেন `d` পরিবর্তে str(d)জন্য ডান বন্ধনী সরানোর যদি আপনি ছাড়াও পাইথন 2 ব্যবহার করুন, print
mbomb007

@ mbomb007 ধন্যবাদ!
হাইপার নিউট্রিনো

for y in 'HDSC'এছাড়াও সেখানে সমস্ত চরিত্র পেতে জন্য কাজ করে। ( list('JQKA')যদিও আপনার এখনও অন্য অংশের প্রয়োজন আছে ))
মূল্য কালি

1
'1 2 3 4 5 6 7 8 9 10 J Q K A'.split() এর পরিবর্তে কয়েকটি বাইট সংরক্ষণ করতে পারে [for d in range(2,11)]+list('JQKA')আপনি ডি ম্যানিপুলেশন চালিয়ে যাচ্ছেন করতে পারে।
ডেটাস্ট্রিম

সম্মত, দেখে মনে হচ্ছে এটি 2 বাইট সংরক্ষণ করবে এই কারণে যে 1যুক্ত করার দরকার নেই of এছাড়াও, আপনি আপনার প্রথম তালিকা অনুধাবনের জন্য বাইরের বন্ধনীগুলি সরিয়ে ফেলতে পারেন কারণ setনির্মাতা জেনারেটর অবজেক্টগুলিকে ঠিকঠাক করে নেয়।
কালি কালি

7

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

ðIð¡YTŸ"JQKA"S«"CDHS"SâJsKðýDg>i“Noœ¶‡¶

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

ব্যাখ্যা

ðI                                       # push space and input
  ð¡                                     # split on spaces
    YTŸ                                  # push the range [2 ... 10]
       "JQKA"S«                          # append ['J','Q','K','A']
               "CDHS"Sâ                  # cartesian product with suits
                       J                 # join each card with its suit
                        sK               # remove any cards in input from the list of all cards
                          ðýDg>i         # if the length of the resulting list is 0
                                “Noœ¶‡¶  # push the string "No missing cards"
                                         # output top of stack

5

CJam , 49 47 বাইট

B,2>"JQKA"+"HDSC"m*:slS/-S*"No missing cards"e|

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

ব্যাখ্যা

B,                    e# The range from 0 to 10
2>                    e# Slice after the first two elements, giving the range from 2 to 10
"JQKA"+               e# Concatenate with "JQKA", giving the array containing all ranks
"HDSC"                e# The string containing all suits
m*                    e# Take the Cartesian product
:s                    e# And cast each pair to a string. Now a full deck has been constructed
l                     e# Read a line of input
S/                    e# Split it on spaces
-                     e# Remove all cards from the deck that were in the input
S*                    e# Join the result with spaces
"No missing cards"    e# Push the string "No missing cards"
e|                    e# Take the logical OR of the result and the string, returning the
                      e#   first truthy value between the two. (empty arrays are falsy)

5

জেলি , 39 বাইট

9R‘Ṿ€;“JQKA”p“CDHS”F€œ-ɠḲ¤Kȯ“¡¢ıḍĖ9ṭƥw»

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

কিভাবে?

9R‘Ṿ€;“JQKA”p“CDHS”F€œ-ɠḲ¤Kȯ“¡¢ıḍĖ9ṭƥw» - Main link: no arguments
9R                                      - range(1,9)    [1,2,3,4,5,6,7,8,9]
  ‘                                     - increment     [2,3,4,5,6,7,8,9,10]
   Ṿ€                                   - uneval each  [['2'],['3'],['4'],['5'],['6'],['7'],['8'],['9'],['10']]
     ;“JQKA”                            - concatenate with char-list "JQKA" [['2'],['3'],['4'],['5'],['6'],['7'],['8'],['9'],['10'],['J'],['Q'],['K'],['A']]
            p“CDHS”                     - Cartesian product with char-list "CDHS" [[['2'],['C']],[['2'],['D']],...]
                   F€                   - flatten each [['2','C'],['2','S'],...]
                         ¤              - nilad followed by link(s) as a nilad
                       ɠ                -     read a line from STDIN
                        Ḳ               -     split on spaces
                     œ-                 - multi-set difference
                          K             - join with spaces
                            “¡¢ıḍĖ9ṭƥw» - compressed string "No missing cards"
                           ȯ            - logical or
                                        - implicit print

5

সি #, 343 বাইট

প্রথমবার আমার গল্ফগুলির মধ্যে একটি পোস্ট করা, যদিও খুব ভাল প্রতিযোগী নয়। আমি নিশ্চিত যে আমি এটিকে আরও কমিয়ে আনতে পারি।

এর পেছনের ধারণাটি হ'ল কার্ডগুলির অল্প পরিমাণে স্টোরের ঘটনা, যা বিভিন্ন মূল্যবোধের ASCII মান অনুসারে সূচকগুলি গণনা করে এবং একে অপরের বিপরীতে স্যুটযুক্ত হয় (উদাহরণস্বরূপ স্পাডেসের একটি টেক্কা (AS৫ *) এ অঞ্চলে সংরক্ষণ করা হবে 83 = 5395))। এইভাবে, প্রতিটি ধরণের কার্ড একটি অনন্য সূচক পায় যা "মানচিত্র" অ্যারেতে অস্তিত্বের জন্য পরে পরীক্ষা করা যায়।

void M(string[]a){var c=new int[]
{50,51,52,53,54,55,56,57,49,74,81,75,65,72,68,83,67};var e=new 
int[9999];int i=0;int j=0;foreach(var s in a) e[s[0]*s[s.Length-
1]]++;int f=0;for(i=0;i<13;i++)for(j=13;j<17;j++)if(e[c[i]*c[j]]==0)
{f=1;Console.Write(((i<9)?(i+2)+"":(char)c[i]+"")+(char)c[j]+" 
");}if(f==0) Console.WriteLine("No missing cards");}

4

পাওয়ারশেল , 114 111 110 বাইট

param($n)('No missing cards',($a=(2..10+'JQKA'[0..3]|%{$i=$_;"CSHD"[0..3]|%{"$i$_"}}|?{$n-notmatch$_})))[!!$a]

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

ইনপুটটিকে $nস্পেস-ডিলিমেটেড বা নিউলাইন-সীমাবদ্ধ স্ট্রিং হিসাবে গ্রহণ করে। সংক্ষিপ্ত পরিসীমা থেকে একটি অ্যারে তৈরি 2..10করে JQKA( [0..3]এটিকে আরও charঅ্যারে করার সাথে সূচিযুক্ত)। সেই অ্যারেটিকে একটি লুপে খাওয়ানো হয় |%{}যা সাহায্যকারী সেট করে $iতারপরে ফলাফলগুলি একসাথে কাটাতে স্যুটগুলির উপরে লুপ করে $i$_। এই লুপের শেষে, আমাদের মতো স্ট্রিংগুলির একটি অ্যারে রয়েছে ("2C", "2S", "2H", ... "AH", "AD")। এই অ্যারেটিকে Where-Object( |?{}) দ্বারা ফিল্টার দিয়ে সেই উপাদান হিসাবে খাওয়ানো হয় $_যা ইনপুটটিকে পুনরায় ভাগ -notmatchকরে $n। ফিল্টারিংয়ের ফলাফলটি এতে সঞ্চিত হয় $a

তারপর, আমরা একটি সিউডো-তিন ব্যবহার ( , )[]নির্বাচন করতে কিনা আমরা আউটপুট 'No missing cards'বা $aকিনা উপর ভিত্তি করে !!$aএকটি বুলিয়ান সক্রিয় $falseবা $true। যদি $aখালি (ডেক প্রতি কার্ড ইনপুট হয় যার অর্থ), তারপর !!$aহয় 0, তাই "No missing cards"নির্বাচন করা হয়। তদ্বিপরীত $aনির্বাচিত হওয়ার জন্য । উভয় ক্ষেত্রেই, এটি পাইপলাইনে রেখে গেছে, এবং আউটপুট অন্তর্ভুক্ত।


4

বাশ + কোর্টিলস, 89

sort|comm -3 <(printf %s\\n {10,{2..9},A,J,K,Q}{C,D,H,S}) -|grep .||echo No missing cards

নতুন / সীমাবদ্ধ তালিকা হিসাবে I / O।

ব্যাখ্যা

  • sort STDIN থেকে নতুন লাইন-সীমিত ইনপুট পড়ে এবং এটি সাজায়
  • এটি পাইপ করা হয় comm
  • printf %s\\n {10,{2..9},A,J,K,Q}{C,D,H,S}কার্ডের সম্পূর্ণ ডেক তৈরির জন্য একটি ব্রেস-প্রসারণ। printfনিজস্ব লাইনে প্রতিটি কার্ড ছাপে। অর্ডারটি এমনভাবে দেওয়া হয় যে আউটপুটটি একই রকম হয় যেন এটি পাইপ করা হয়েছিলsort
  • commবাছাই করা ইনপুটটির সাথে সম্পূর্ণ ডেকের তুলনা করে এবং পার্থক্যটি আউটপুট করে। -33 কলামের আউটপুট দমন করে (সাধারণগুলি)
  • থেকে পুরো আউটপুট commপাইপ করা হয় grep .। যদি কোনও আউটপুট না থাকে comm(যেমন সমস্ত কার্ড ইনপুটটিতে ছিল), তবে ||"বা" ধারাটি প্রয়োজনীয় বার্তা আউটপুট করে। অন্যথায় grep .সমস্ত লাইন আউটপুট থেকে মেলে comm

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


4

পাইথন 2 , 104,93,130 , 114 বাইট

r=input()
print' '.join(n+x for n in list('23456789JQKA')+['10']for x in'HDSC'if n+x not in r)or'No missing cards'

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

  • -10 বাইটের সাথে রেঞ্জ ব্যবহারের পরিবর্তে তালিকার হার্ডকোডিং রয়েছে!
  • +37৩ বাইট - সমস্ত কার্ড ইনপুটে উপস্থিত থাকলে 'কোনও গায়েবি কার্ড নেই' মুদ্রণ মিস!
  • -16 বাইটস কোডটি তালিকা বোধের মধ্যে পরিবর্তন করে!


1
@ L3viathan এটি নির্দেশ করার জন্য ধন্যবাদ। আমি আমার উত্তর সম্পাদনা করেছি!
কীর্তনা প্রভাকরণ

list('23456789JQKA')+['10']চালাক। 10অন্যান্য অজগর উত্তরের একক অক্ষরের তালিকার বাইরে আলাদা করার জন্য আমি আমার মস্তিষ্ককে আরও ভালভাবে ভাঙ্গছিলাম , তবে এটি সুন্দরভাবে কাজ করে।
ডেটাস্ট্রিম

2

রুবি, 108 + 1 = 109 বাইট

-pপতাকা ব্যবহার করে ।

a=[*?2..'10',?J,?Q,?K,?A].map{|i|%w"H D S C".map{|c|i+c}}.flatten-$_.split;$_=a==[]?"No missing cards":a*' '


2

সেড , 157 + 1 ( -rপতাকা) = 170 158 বাইট

x
s/$/;A2345678910JQK/
s/.+/&H&D&S&C;No missing cards/
:
s/(10|\w)(\w+)(.);/\1\3 \2\3;/
t
G
:s
s/(10.|[^ ;1]{2})(.*\n.*)\1/\2/
ts
s/[ ;]+/ /g
s/^ //
s/ N.+//

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

এটি সমস্ত সম্ভাব্য কার্ড উত্পন্ন করে এবং তারপরে উত্পন্ন কার্ডগুলি থেকে প্রতিটি কার্ড ইনপুটটিতে সরিয়ে দেয়।



@ L3viathan স্থির
Kritixi Lithos

2

সি # , 282 বাইট


Golfed

i=>{var o=new System.Collections.Generic.List<string>();string[] S={"H","D","S","C"},N="A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');foreach(var s in S){foreach(var n in N){if(!System.Linq.Enumerable.Contains(i,n+s)){o.Add(n+s);}}}return o.Count>0?string.Join(" ",o):"No missing cards";};

Ungolfed

i => {
    var o = new System.Collections.Generic.List<string>();
    string[] S = { "H", "D", "S", "C" }, N = "A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');

    foreach( var s in S ) {
        foreach( var n in N ) {
            if( !System.Linq.Enumerable.Contains( i, n + s ) ) {
                o.Add( n + s );
            }
        }
    }

    return o.Count > 0
        ? string.Join( " ", o )
        : "No missing cards";
};

অসম্পূর্ণ পাঠযোগ্য

i => {
    // Initialize a list to contain the list of cards missing
    var o = new System.Collections.Generic.List<string>();

    // Initialize the list of suits and numbers of cards
    string[] S = { "H", "D", "S", "C" }, N = "A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');

    // Cycle through the suits...
    foreach( var s in S ) {
        // ... and the numbers ...
        foreach( var n in N ) {
            // ... and check it the combo number + suite is missing
            if( !System.Linq.Enumerable.Contains( i, n + s ) ) {
                // If it's missing, add it to the list of missing cards
                o.Add( n + s );
            }
        }
    }

    // If the count of missing cards is greater than 0...
    return o.Count > 0
        // Build a 'space' separated string with the missing cards
        ? string.Join( " ", o )
        // Or output the missing cards string
        : "No missing cards";
};

সম্পূর্ণ কোড

using System;
using System.Collections.Generic;
using System.Linq;

namespace Namespace {
   class Program {
      static void Main( String[] args ) {
         Func<String, Int32> f = i => {
            var o = new List<string>();
            string[] S = { "H", "D", "S", "C" }, N = "A 2 3 4 5 6 7 8 9 10 J Q K".Split(' ');

            foreach( var s in S ) {
               foreach( var n in N ) {
                  if( !i.Contains( n + s ) ) {
                     o.Add( n + s );
                  }
               }
            }

            return o.Count > 0
               ? string.Join( " ", o )
               : "No missing cards";
         };

         List<String>
            testCases = new List<String>() {
                "9H AH 7C 3S 10S KD JS 9C 2H 8H 8C AC AS AD 7D 4D 2C JD 6S"
            };

         foreach( String testCase in testCases ) {
            Console.WriteLine( $"{test}\n{f( test.Split( ' ' ) )}" );
         }

         Console.ReadLine();
      }
   }
}

রিলিজ

  • v1.0 - 282 bytes- প্রাথমিক সমাধান।

মন্তব্য

কিছুই যুক্ত করার নেই


1
এটি আপনার উত্তরের জন্য খুব সুন্দর ফর্ম্যাট, +1।
আর

2

জাভাস্ক্রিপ্ট (ES6), 117 114 111 বাইট

s=>[...Array(52)].map((_,i)=>~s.search(c=('JQKA'[v=i>>2]||v-2)+'CDHS'[i&3])?_:c+' ').join``||'No missing cards'

বাস্তবে দেখা যায় যে সুবিধা নেয় অনির্ধারিত অ্যারের মধ্যে এন্ট্রি দ্বারা উত্পন্নmap() খালি স্ট্রিং যখন করতে বাধ্য করা হয় join()'ঘ।

ডেমো


2

রেটিনা , 76 বাইট

^
A2345678910JQK¶ 
\G(10|.)
 $&H $&D $&S $&C
Dr` \S+
G1`
^$
No missing cards

ইনপুট / আউটপুট হল স্থান-বিচ্ছিন্ন কার্ডের একটি তালিকা। আউটপুট একটি নেতৃস্থানীয় স্থান আছে।

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

ব্যাখ্যা

বেশিরভাগ কোড ডেকের মধ্যে থাকা কার্ডগুলির সম্পূর্ণ তালিকা তৈরির সাথে সম্পর্কিত:

^
A2345678910JQK¶ 
\G(10|.)
 $&H $&D $&S $&C

প্রথমত, আমরা কার্ডের সমস্ত সম্ভাব্য মান সহ ইনপুটটিতে একটি নতুন লাইন প্রস্তুত করি, তারপরে এই লাইনের প্রতিটি চরিত্রের (বা চরিত্রের দম্পতি 10) আমরা সেই কার্ডের সম্ভাব্য স্যুটগুলির তালিকা তৈরি করি।

Dr` \S+

এটি একটি প্রতিলিপি পর্যায়, এটি একটি স্পেস প্লাস কিছু অ ফাঁকা স্থান নিয়ে অংশগুলিকে স্ট্রিংগুলিকে বিভক্ত করে এবং প্রতিটি খণ্ডের কেবলমাত্র একটি ঘটনা রাখে। সংশোধক প্রতিটি খণ্ডের শেষ ঘটনাটি rরেখে এটিকে ডান থেকে বামে চালিত করে ।

G1`

আমরা কেবল প্রথম লাইন রাখি, যার মধ্যে এখন হারিয়ে যাওয়া কার্ড রয়েছে।

^$
No missing cards

ফলাফল খালি থাকলে আমরা এটিকে "অনুপস্থিত কার্ডগুলি" দিয়ে প্রতিস্থাপন করব


1

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

দুটি পূর্ববর্তী পাইথন উত্তরের সংমিশ্রণটি কিছু স্ট্রিং আনপ্যাকিং শেননিগানের সাথে মিশ্রিত হয়েছে।

print(' '.join({x+y for x in[*'23456789JQKA','10']for y in'HDSC'}-{*input().split()})or'No missing cards')

1

জুলিয়া , 116 বাইট

print(join(setdiff(["$x$y"for x=∪(2:10,"JQKA")for y="HDSC"],readline()|>split),' ')|>s->s>""?s:"No missing cards")

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

কাইল গুলিয়ানস অজগর সমাধানের সাথে খুব মিল। পরিবর্তে সেটডিফ - এবং খালি স্ট্রিংয়ের জন্য পরীক্ষার জন্য ল্যাম্বদা যদিও এটি আরও খারাপ করে।



1

Tcl , 270 228 টি অক্ষর

(ওয়াট উইসার্ডের কিছু সহায়তায় সংক্ষিপ্ত)

foreach s {H D S C} {foreach c {2 3 4 5 6 7 8 9 J Q K A} {dict set d $c$s 0}}
gets stdin l
foreach c $l {dict set d $c 1}
set m {}
dict for {c h} $d {if {!$h} {lappend m $c}}
if {![llength $m]} {set m "No missing cards"}
puts $m

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

ব্যাখ্যা:

এই বাস্তবায়নটি এইচডিএসসি এবং 2-থ্রি-এ-এর কার্টেসিয়ান পণ্য দ্বারা প্রতিনিধিত্ব করা প্রতিটি কার্ডের জন্য বুলিয়ান পতাকা সমন্বিত একটি অভিধান তৈরি করে। এটি স্টিডিনের লাইনটি পড়ে, যা যদি বিশেষ হিসাবে বলা হয় তবে এটি একটি ভালভাবে গঠিত টিসিএল তালিকা। প্রতিটি কার্ড যেমন পাঠ করা হয়, তেমন একটি বুলিয়ান সত্যই সেই কার্ডের অভিধানে ইনপুট।

শেষে একটি পার্সার অভিধানের সাহায্যে লুপ করে এবং যে কোনও কার্ড যুক্ত করে যা অভিধানে নিখরচায় থাকা কার্ডগুলি তালিকার সাথে সত্য নয়। যদি হারিয়ে যাওয়া কার্ডগুলির তালিকার দৈর্ঘ্য শূন্য হয়, তবে "অনুপস্থিত কোনও কার্ড নেই" আউটপুট, অন্যথায় নিখোঁজ কার্ডগুলির তালিকা আউটপুট করুন।



1

পিএইচপি , 138 বাইট

সাথে দৌড়ে -nএবং-d error_reporting=0

আমি একটি পুরানো অনুশাসন থেকে কিছু কোড পুনরায় ব্যবহার করিআমি তৈরি যা কার্ডগুলির একটি ডেকে তৈরি করার জন্য বলেছিল

কোড

<?$r=[];foreach([A,J,Q,K,2,3,4,5,6,7,8,9,10]as$t)array_push($r,$t.H,$t.S,$t.D,$t.C);
echo join(" ", array_diff($r,explode(" ",$argv[1])));

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

ব্যাখ্যা

<?$r=[];   # Declare the array that will contain the full deck
# the next line will generate the arry with the full deck  
foreach([A,J,Q,K,2,3,4,5,6,7,8,9,10]as$t)array_push($r,$t.H,$t.S,$t.D,$t.C);
# explode the input string on each blank space and using array_diff to get the
# different elements withing both arrays. (and "echo" of course) 
echo join(" ", array_diff($r,explode(" ",$argv[1])));

আপনি কয়েকটি টুইটের মাধ্যমে এটি 120 এ নামতে পারেন। 1) প্রথম লাইনটি a এর সাথে শেষ করুন?> <? = 2 দিয়ে 'প্রতিধ্বনি' প্রতিস্থাপন করুন) স্পেস সহ নিয়মিত কমান্ড লাইনে কার্ড প্রবেশ করানো $ আরগভকে উপাদান হিসাবে প্রতিটিটির সাথে একটি অ্যারে হিসাবে বিশিষ্ট করবে, যাতে আপনি বিস্ফোরনটি অপসারণ করতে পারেন ( ) সম্পূর্ণ। এটি ব্যবহার করে দেখুন
640KB

আমার $argvমত কোনও ক্লু ছিল না যা সেভাবে কাজ করতে পারে, ধন্যবাদ @gwaugh
ফ্রান্সিসকো হ্যান

ওহ বিটিডব্লু @ggw প্রশ্নটি উত্তর দিয়েছিল যে আর্গুমেন্টটি ফাঁকা দ্বারা পৃথক একটি স্ট্রিং, যুক্তিগুলি একে একে সেট করতে পারে।
ফ্রান্সিসকো হহন

আপনি যদি কমান্ড লাইনে এটি চালান যেমন: 'পিএইচপি ডেক.এফপি 2 এস 5 এইচ জিসি' এটি একইরকম ব্যবহার হিসাবে মনে হয় আপনি এটিকে স্পেস ডিলিমিটেড স্ট্রিং হিসাবে ভাবেন। আপনি কেবল পিএইচপি আপনার জন্য এটি পার্স করতে দিচ্ছেন। এটি কেবলমাত্র টিআইওর ইউআই যা আপনাকে এগুলিকে আলাদা করতে দেয়।
640 কেবি

আচ্ছা বুঝলাম. সম্পাদনা করবে, বাইটসকে ধন্যবাদ: ডি
ফ্রান্সিসকো হ্যান



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