তারা আমাকে ইন্সপেক্টর মোর্স বলে call


20

আপনার মিশনটি, আপনি যদি এটি গ্রহণ করতে চান তবে সিদ্ধান্ত নেওয়া হয় যে প্রদত্ত ইনপুট স্ট্রিংটি বিন্দু-ভারী, বা ড্যাশ-ভারী।

একটি স্ট্রিং বিন্দু-ভারী যখন এর মর্সের উপস্থাপনায় ড্যাশগুলির চেয়ে বেশি বিন্দু থাকে। উদাহরণস্বরূপ, E অক্ষরটি একটি একক বিন্দু, যার অর্থ এটি বিন্দু-ভারী।

ইনপুট

  • ইনপুট স্ট্রিংয়ে কেবল [a-z]বা এর পরিসরে অক্ষর থাকবে [A-Z]। তারা সিদ্ধান্ত নিতে পারেন যে সেগুলি সমস্ত উচ্চতর ক্ষেত্রে বা সমস্ত ছোট ক্ষেত্রে হওয়া উচিত। AAAভাল, aaaঠিক আছে, aAaনেই।
  • ইনপুট স্ট্রিং সর্বদা দৈর্ঘ্যে কমপক্ষে 1 টি অক্ষর হবে।
  • আপনি ধরে নিতে পারেন ইনপুট স্ট্রিংগুলিতে কখনও বিন্দু এবং ড্যাশগুলির সমান পরিমাণ থাকবে না।

আউটপুট

আপনার আরও ডট অক্ষরযুক্ত ইনপুটগুলির জন্য সত্যবাদিতা ফিরিয়ে দেওয়া উচিত ।
আপনার আরও ড্যাশ অক্ষরযুক্ত ইনপুটগুলির জন্য ফালসি ফিরিয়ে দেওয়া উচিত।
সম্পাদনা করুন: আমি বিন্দুর জন্য একটি ধনাত্মক মান এবং ড্যাশের জন্য নেতিবাচক মানকেও অনুমতি দেব।

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

| input | morse representation | result          |
|------------------------------------------------|
| S     | ...                  | Truthy          |
| k     | -.-                  | Falsy           |
| HELLO | .... . .-.. .-.. --- | Truthy          |
| code  | -.-. --- -.. .       | Falsy           |

উল্লেখ

আন্তর্জাতিক মোর্স কোড

এটি । বাইটস মধ্যে সংক্ষিপ্ত কোড।



4
আমরা কি ডথওয়েভির জন্য 0 এর উপরে একটি মান এবং ড্যাশ-ভারী জন্য একটি নেতিবাচক মান ফেরত দিতে পারি?
অজ্ঞতার প্রতিমূর্তি

@ এম্বেডিমেন্টফ অজ্ঞানতা আমার পক্ষে কাজ করে যতক্ষণ আপনি এটি আপনার পোস্টে নির্দিষ্ট করেন। আমি মনে করি না এটি সাধারণত সত্যবাদী মিথ্যা পরীক্ষায় উত্তীর্ণ হয় তবে এটি এই ক্ষেত্রে ভাল সমাধানের মতো বলে মনে হয় তাই আমি এটির অনুমতি দেব
বাসড্রপ কম্বারবুবউবউব

উত্তর:


5

এপিএল (ডায়ালগ প্রসারিত) , 24  15 বাইট এসবিসিএস

-9 ভেন ধন্যবাদ

আর্গুমেন্ট হিসাবে বড় হাতের অক্ষর বেনামে tacit উপসর্গ ফাংশন।

>/'.-'⍧∊∘⌂morse

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

⌂morse ধর্মান্তরিত জলহস্তী স্ট্রিং লিস্টে
 তারপর
ε nlist (চেপ্টা)
'.-'⍧ যে বিন্দু এবং ড্যাশ সংখ্যা গণনা
>/ ড্যাশ চেয়ে বেশি বিন্দু? (লিট। হ্রাস-বৃহত্তর)


ডিফল্টরূপে প্রিলোড ডিফএনএস বাড়ানো হয়নি কেন?
এনজিএন

@ জিএনএন এটি এখন অন্তর্নির্মিত
অ্যাডাম

7

আইবিএম পিসি ডস, 8088 সমাবেশ, 54 35 বাইট

-19 পার্থক্য পদ্ধতি ব্যবহার করে বাইট

ac2c 41d0 d8d7 7206 51b1 04d2 e859 240f 2c03 02e0 e2ea 3534 4527 4125 1303 1462 4523 13

unassembled:

; compare dashes and dots in a morse code string
; input:
;   I: pointer to input string (default SI)
;   IL: length of input string (default CX)
;   TBL: pointer to data table (default BX)
; output:
;   Sign/OF flags: Dot-heavy: SF == OF (JGE), Dash-heavy: SF != OF (JL)
MORSE_DD    MACRO   I, IL, TBL
            LOCAL   LOOP_LETTER, ODD
        IFDIFI <I>,<SI>     ; skip if S is already SI
    MOV  SI, I              ; load string into SI 
        ENDIF
        IFDIFI <IL>,<CX>    ; skip if IL is already CX
    MOV  CX, IL             ; set up loop counter
        ENDIF
        IFDIFI <TBL>,<BX>   ; skip if TBL is already BX
    MOV  BX, OFFSET TBL     ; load letter table into BX
        ENDIF
LOOP_LETTER:
    LODSB                   ; load next char from DS:SI into AL, advance SI
    ;AND  AL, 0DFH           ; uppercase the input letter (+2 bytes)
    SUB  AL, 'A'            ; convert letter to zero-based index
    RCR  AL, 1              ; divide index by 2, set CF if odd index
    XLAT                    ; lookup letter in table
    JC   ODD                ; if odd index use low nibble; if even use high nibble
    PUSH CX                 ; save loop counter (since SHR can only take CL on 8088)
    MOV  CL, 4              ; set up right shift for 4 bits
    SHR  AL, CL             ; shift right
    POP  CX                 ; restore loop counter
ODD:
    AND  AL, 0FH            ; mask low nibble
    SUB  AL, 3              ; unbias dash/dot difference +3 positive
    ADD  AH, AL             ; add letter difference to sum (set result flags)
    LOOP LOOP_LETTER
        ENDM

TBL DB 035H, 034H, 045H, 027H, 041H, 025H, 013H, 003H, 014H, 062H, 045H, 023H, 013H

ব্যাখ্যা

শুধুমাত্র 8088 সামঞ্জস্যপূর্ণ নির্দেশাবলী ব্যবহার করে ম্যাক্রো (মূলত একটি ফাংশন) হিসাবে ইন্টেল / এমএএসএম সিনট্যাক্সে প্রয়োগ করা হয়েছে। বড় হাতের স্ট্রিং হিসাবে ইনপুট (বা মিশ্রণ-কেস অনুমতি দিতে +2 বাইট), আউটপুট ট্রুটি / ফলসির ফলাফল SF == OF(ব্যবহার JGবা JLপরীক্ষায়)।

বর্ণের পার্থক্য সারণীর মানগুলি বাইনারি নিবলগুলি হিসাবে সঞ্চিত থাকে, সুতরাং কেবলমাত্র মোট 13 বাইট লাগে।

আসল (৫৪ বাইট):

; compare dashes and dots in a Morse code string
; input:
;   I: pointer to input string (default SI)
;   IL: length of input string (default CX)
;   TBL: pointer to data table
; output:
;   Carry Flag: CF=1 (CY) if dot-heavy, CF=0 (NC) if dash-heavy
MORSE_DD    MACRO   I, IL, TBL
            LOCAL   LOOP_LETTER
        IFDIFI <I>,<SI>     ; skip if S is already SI
    MOV  SI, I              ; load string into SI 
        ENDIF
        IFDIFI <IL>,<CX>    ; skip if IL is already CX
    MOV  CX, IL             ; set up loop counter
        ENDIF
    MOV  BX, OFFSET TBL     ; load score table into BX
    XOR  DX, DX             ; clear DX to hold total score
LOOP_LETTER:
    LODSB                   ; load next char from DS:SI into AL, advance SI
    ;AND  AL, 0DFH           ; uppercase the input letter (+2 bytes)
    SUB  AL, 'A'            ; convert letter to zero-based index
    XLAT                    ; lookup letter in table
    MOV  AH, AL             ; examine dot nibble
    AND  AH, 0FH            ; mask off dash nibble
    ADD  DH, AH             ; add letter dot count to total
    PUSH CX                 ; save loop counter (since SHR can only take CL)
    MOV  CL, 4              ; set up right shift for 4 bits
    SHR  AL, CL             ; shift right
    POP  CX                 ; restore loop counter
    ADD  DL, AL             ; add letter dash count to total
    LOOP LOOP_LETTER
    CMP  DL, DH             ; if dot-heavy CF=1, if dash-heavy CF=0
        ENDM

; data table A-Z: MSN = count of dash, LSN = count of dot
TBL DB 011H, 013H, 022H, 012H, 001H, 013H, 021H, 004H, 002H 
    DB 031H, 021H, 013H, 020H, 011H, 030H, 022H, 031H, 012H
    DB 003H, 010H, 012H, 013H, 021H, 022H, 031H, 022H

ব্যাখ্যা

শুধুমাত্র 8088 সামঞ্জস্যপূর্ণ নির্দেশাবলী ব্যবহার করে ম্যাক্রো (মূলত একটি ফাংশন) হিসাবে ইন্টেল / এমএএসএম সিনট্যাক্সে প্রয়োগ করা হয়েছে। স্ট্রিং হিসাবে আউটপুট, আউটপুট সত্যবাদী / মিথ্যা ফলশ্রুতি বহন করে ক্যারি পতাকা। স্কোর সারণীতে চিঠিতে ড্যাশ এবং বিন্দুর সংখ্যা রয়েছে।

ইনপুট হ'ল আপার কেস। নিম্ন বা মিশ্র ক্ষেত্রে নিতে 2 বাইট যুক্ত করুন।

উদাহরণ পরীক্ষা প্রোগ্রাম (আইবিএম পিসি ডস স্ট্যান্ডअ্যালোন সিওএম এক্সিকিউটেবল হিসাবে)

    SHR  SI, 1              ; point SI to DOS PSP
    LODSW                   ; load arg length into AL, advance SI to 82H
    MOV  CL, AL             ; set up loop counter in CH
    DEC  CX                 ; remove leading space from letter count

    MORSE_DD SI, CX, TBL    ; execute above function, result is in CF

    MOV  DX, OFFSET F       ; default output to "Falsy" string
    JA   DISP_OUT           ; if CF=0, result is falsy, skip to output
    MOV  DX, OFFSET T       ; otherwise CF=1, set output to "Truthy" string
DISP_OUT:
    MOV  AH, 09H            ; DOS API display string function
    INT  21H
    RET

T   DB "Truthy$"
F   DB "Falsy$"

উদাহরণ আউটপুট:

এখানে চিত্র বর্ণনা লিখুন

ডাউনলোড প্রোগ্রাম পরীক্ষা DD.COM

অথবা এটি অনলাইন চেষ্টা করুন! ডোজ এক্সিকিউটেবলের সাথে সরাসরি লিঙ্ক করার জন্য আমি কোনও অনলাইন টিআইও সম্পর্কে সচেতন নই, তবে আপনি এটি কয়েকটি পদক্ষেপের সাহায্যে ব্যবহার করতে পারেন:

  1. জিডি ফাইল হিসাবে DD.COM ডাউনলোড করুন
  2. Https://virtualconsoles.com/online-emulators/DOS/ এ যান
  3. আপনি সবে ডাউনলোড করা জিপ ফাইলটি আপলোড করুন, স্টার্ট ক্লিক করুন
  4. টাইপ করুন DD Helloবা DD codeআপনার হৃদয়ের বিষয়বস্তু

আমি কিছু অনুপস্থিত হতে পারে, তবে কি সেই ম্যাক্রো প্রবেশের সময় এএইচ = 0 ধরে না? মঞ্জুর, পরীক্ষা প্রোগ্রামটি ব্যবহার করার সময় সেই অনুমানটি বৈধ।
গ্যাস্ট্রোপনার

1
শুভ চোখ! অনুমানটি ডস এক্সিকিউশন প্রাথমিক স্টার্টআপ রেজিস্টার মানের উপর ভিত্তি করে তৈরি করা হয়, যা ডসের প্রায় সব সংস্করণের 0000hজন্য এক্স উত্সের জন্য: fysnet.net/yourhelp.htm
640KB

অন্য এক সমাবেশ গল্ফ খেলোয়াড় থেকে: চমৎকার ! খাঁটি 8088- সুসংগত নির্দেশাবলী ব্যবহারের জন্য অতিরিক্ত শৈলী পয়েন্ট। এটি এমন একটি প্ল্যাটফর্ম যেখানে কোড গল্ফিং মূলত অপ্টিমাইজেশনের সমতুল্য এবং সত্যই একটি হারিয়ে যাওয়া শিল্প। XLATএটি করতে যা বোঝানো হয়েছে ঠিক তা করার জন্য দুর্দান্ত ব্যবহার । আপনি যদি আসলে আকারের গতির জন্য অনুকূল হয়ে থাকেন তবে আপনি WORD- আকারের লকআপগুলি করতে চাইবেন। এটি ৮০৮৮ তে এমনকি তার অ্যানিমিক ৮-বিট বহিরাগত বাসের সাথে গতিযুক্ত জয়, কারণ আপনি কোডের আকার না বাড়িয়ে আউটপুট দ্বিগুণ করছেন, কোনও XCHGনির্দেশ বা দু'জনের জন্য সংরক্ষণ করুন ।
কোডি গ্রে

@ কোডি গ্রে ধন্যবাদ! প্ল্যাটফর্ম এবং নির্দেশের সেটটির সাথে চ্যালেঞ্জটি সুন্দরভাবে ফুটে উঠলে এটি সর্বদা মজাদার। প্লাস এটি ঝরঝরে যখন আপনি 1 পর্দার আসল পিসির 8088 তে কিছু অর্জন করতে পারেন (যেমন XLAT), যদিও এটি 4 টি বাইট লাগিয়ে ডান 4 টি জায়গা (এ এর ভিতরে LOOP) করতে হবে।
640KB

হা. পারফরম্যান্সের জন্য, আপনি অবশ্যই ধাক্কা এবং পপকে বাদ দিয়ে 1 এর মধ্যে 4 টি আলাদা শিফট করতে চান। এটি এমনও নয় যে আরও অনেকগুলি বাইট (+২), সুতরাং সামগ্রিকভাবে নেট জয়, তবে গল্ফের পক্ষে ভাল নয়। আসল মজাটি তখন আসে যখন চ্যালেঞ্জ আইএসএর সাথে তাল মিলবে না এবং বিদ্যমান বিল্ডিং ব্লকগুলি প্রয়োগ করার নতুন, উদ্ভাবনী উপায়গুলি খুঁজতে আপনাকে আপনার মনকে প্রসারিত করতে হবে। পারফরম্যান্স এবং গল্ফিংয়ের জন্য 1 বাইট স্ট্রিং নির্দেশাবলী 8088 এ খুব সুন্দর। আমি তাদের বাস্তব কোডে ব্যবহার করি। এক্সএলএটি হ'ল এমন একটি যা আমি প্রায়শই খুব বেশি ব্যবহার করি না, আমার ধারণা modern
কোডি গ্রে

7

জাভা (জেডিকে) , 131 124 110 84 64 বাইট

মজার বিষয় হল, "ডট" হ'ল ড্যাশ-ভারী এবং "ড্যাশ" বিন্দু-ভারী।

সমস্ত ক্যাপগুলিতে একটি হিসাবে ইনপুট নেয় IntStream( Stringঅতিরিক্ত 8 বাইটের জন্য একটি আসল সহ একটি সংস্করণে নীচে স্ক্রোল করুন )। এইটিকে গল্ফ করতে আমার যথেষ্ট সহায়তা হয়েছে: 20 বাইট গল্ফ করার জন্য মেয়াদোত্তীর্ণ ডেটা , গল্ফিং 26 বাইটের জন্য নীলকে , 18 বাইট গল্ফিংয়ের জন্য অলিভিয়ার গ্রোগোয়ারকে এবং 2 বাইট গল্ফিংয়ের জন্য কেভিন ক্রুইজসেনকে ধন্যবাদ।

ডাবল উদ্ধৃতিগুলির মধ্যে 26 টি অপ্রিন্টযোগ্য অক্ষর রয়েছে।

c->c.map(a->"".charAt(a-65)-4).sum()>0

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

Ungolfed:

c -> // lambda taking input as an IntStream in upper case and returning a boolean
  c.map(a -> "" // map each character's ASCII value to its net dot impact (unprintable characters here)
    .charAt(a - 65) // translate the ASCII code into a zero-based index into the above string (65 is 'A')
    - 4) // unprintables are > 0, this restores the proper values
  .sum() > 0 // add up all the values, positive sum indicates a dot-heavy input string

জাভা (জেডিকে) , 131 124 110 84 72 বাইট

পিউরিস্টদের জন্য; হিসাবে ইনপুট লাগে String। 20 বাইট গল্ফ করার জন্য মেয়াদোত্তীর্ণ ডেটা , 26 বাইট গল্ফিংয়ের জন্য নীলকে এবং 10 বাইট গল্ফিংয়ের জন্য অলিভিয়ার গ্রোগোয়ারকে ধন্যবাদ।

s->s.chars().map(a->"".charAt(a-65)-4).sum()>0

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

Ungolfed:

s -> // lambda taking input as a String in upper case and returning a boolean
  s.chars() // convert to a stream of characters
  .map(a -> "" // map each character's ASCII value to its net dot impact (unprintable characters here)
    .charAt(a - 65) // translate the ASCII code into a zero-based index into the above string (65 is 'A')
    - 4) // unprintables are > 0, this restores the proper values
  .sum() > 0 // add up all the values, positive sum indicates a dot-heavy input string



2
কেন ব্যবহার "35344527512513031462452313".charAt(a-65)-51করবেন না ?
নিল


1
পছন্দ করুন আরও 1 টি বাইট
সংরক্ষণযোগ্য

4

জেলি , 21 বাইট

Oị“ÆġwıMƥ)ɠịṙ{’D¤Æm>4

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

কিভাবে?

Oị“ÆġwıMƥ)ɠịṙ{’D¤Æm>4 - Link: list of characters ([A-Z]), S
                ¤     - nilad followed by link(s) as a nilad:
  “ÆġwıMƥ)ɠịṙ{’       -   base 250 integer = 14257356342446455638623624
               D      -   to decimal digits
                      -   -- that is the number of dots less the number of dashes plus 4
                      -      ... for each of OPQRSTUVWXYZABCDEFGHIJKLMN
O                     - ordinals of S   e.g. "ATHROUGHZ" -> [65,84,72,82,79,85,71,72,90]
 ị                    - index into (1-indexed & modular, so O gets the 79%26 = 1st item
                      -                                  or A gets the 65%26 = 13th item
                 Æm   - arithmetic mean
                   >4 - greater than 4?

4

05 এ বি 1 ই , 22 21 বাইট

কেভিন ক্রুইজসেনকে একটি বাইট ধন্যবাদ সংরক্ষণ করা

SA•U(Õþć6Δ
»›I•‡3-O.±

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

ব্যাখ্যা

•U(Õþć6Δ
»›I•

হয় 35344527512513031462452313 বেস 255 সংকুচিত।

S              # split input into list of chars
       ‡       # transliterate
 A             # the lowercase alphabet
  •...•        # with the digits from the compressed string
        3-     # subtract 3 from each              
          O    # then sum the result
           .±  # and take the sign

আপনি মানচিত্রটি প্রতিস্থাপন করে একটি বাইট সংরক্ষণ করতে পারেন S
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন: ধন্যবাদ! আমি নিশ্চিত যে আমি এটি চেষ্টা করেছি, তবে দৃশ্যত নয় :)
এমিগিনা

3
usdgpsahsoaboutlopezgbidolv = ord(c)*3%83%8

@ আরনাউল্ড: আকর্ষণীয়! আপনি এটি কিভাবে খুঁজে পেলেন? হাতের কাছে নাও আমি আশা করি: পি
এমিগিনা

1
আমি সব শব্দের জোড়াকে জোর করে চাপিয়ে দিয়েছি এবং সবচেয়ে দীর্ঘ ম্যাচটি ছিল aboutlopez। আমি তখন একই গুণক এবং মডুলোর সাথে অন্য ম্যাচগুলির সন্ধান করলাম। (সুতরাং এটি একেবারে অনুকূল হওয়ার গ্যারান্টিযুক্ত নয়))
আর্নল্ড

4

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 47 বাইট

n=>n.Sum(i=>("[E[LduRgmQSMK"[i%13]>>i%2*3)%8-3)

লেভেল রিভার সেন্টের 'ম্যাজিক স্ট্রিং' ব্যবহার করে। পাশাপাশি তাদের সমাধান upvote নিশ্চিত করুন!

এটি প্রতিদিনের সি # রুবি, পাইথন, জাভাস্ক্রিপ্ট, সি, রেটিনা এবং পার্লকে বীট করে না!

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




3

পাইথন 2 , 73 70 69 বাইট

lambda s:sum(int(`0x21427b563e90d7783540f`[ord(c)%25])-3for c in s)>0

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

শুধু বড় হাতের অক্ষর

-৩ বাইটস, এরিক দ্য আউটগোল্ফারকে ধন্যবাদ


উপরের এবং ছোট উভয় সংস্করণ:

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

lambda s:sum(int(oct(0x1d7255e954b0ccca54cb)[ord(c)%32])-3for c in s)>0

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



2

স্ট্যাক্স , 20 বাইট

ÉBÜ◙ƒ╣<Hf6─òɼsäS╗◄↔

এটি চালান এবং এটি ডিবাগ করুন

আনপ্যাকড, নিরবচ্ছিন্ন এবং মন্তব্য করা হয়েছে, এটি দেখতে এমন দেখাচ্ছে।

"45D.J57KBJa`"I"    string literal with code points [52 53 68 46 74 53 55 75 66 74 97 34 73]
$                   flatten to string "52536846745355756674973473"
;                   push input
@                   get string characters at indices 
                    (using input codepoints as indices; lookups wrap around)
:V                  arithmetic mean
53>                 is greater than 53

এটি চালান


2

রুবি , 64 বাইট

->s{n=0;s.bytes{|i|n+=("[E[LduRgmQSMK"[i%13].ord>>i%2*3)%8-3};n}

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

13 বাইটের যাদু স্ট্রিং ব্যবহার করে, 0..7প্রতিটি বাইটে 2 নম্বর এনকোড করা থাকে। একটি ব্যাপ্তির জন্য 3 বিয়োগ করুন -3..4

মডেলো 13 Aএবং (এছাড়াও N) নেওয়া ASCII কোডটি কাকতালীয়ভাবে, শূন্য।


1

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

T`L`35344527412513031462452313
.
$*<>>>
+`<>|><

^<

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। কেবলমাত্র উপরের কেস গ্রহণ করে (মিশ্র ক্ষেত্রে ক্ষেত্রে +6 বাইট)। নির্লজ্জভাবে @ আরনল্ডের স্ট্রিং চুরি করছে তবে আমি যেভাবেই হোক একই অ্যালগরিদমটি ব্যবহার করতে যাচ্ছিলাম। ব্যাখ্যা:

T`L`35344527412513031462452313
.

প্রতিটি অক্ষরকে বিন্দু এবং ড্যাশ সংখ্যার পার্থক্যে পরিবর্তন করুন, তিনটি যোগ করুন, তাই O=0এবং H=7

$*<>>>

<এস এবং তিনটি সংখ্যার হিসাবে পার্থক্য উপস্থাপন করুন >। (দুর্ভাগ্যক্রমে আমি বিন্দুগুলি ব্যবহার করতে পারছি না কারণ তারা রেজেক্সে বিশেষ।

+`<>|><

<S এবং >s এর মিলিত জোড়া সরিয়ে ফেলুন ।

^<

এখনও কোনও বিন্দু বাকি আছে কিনা তা পরীক্ষা করে দেখুন।


1

বাশ + কোর্টিলস,  64  60 বাইট

tr a-z 35344526512513031462452313|sed s/./\&z-+/g|dc -eIK?^p

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

লোয়ারকেসে স্ট্রিং নেয়, মিথ্যা বলার জন্য শূন্য আউটপুট দেয়, সত্যের জন্য ননজারো

ব্যাখ্যা

এমন একটি ডিসি প্রোগ্রাম তৈরি করতে টিআর এবং সেড ব্যবহার করে (উদাহরণস্বরূপ 'হ্যালো' ইনপুট):

IK6z-+4z-+5z-+5z-+0z-+^p

IK     Push 10, then 0 to the stack
6z-+  Push 6 (three more than the dots minus dashes in 'h'), subtract 3, and accumulate
...    Do the same for all other letters, so the stack now has the total dots minus dashes
^      Raise 10 to this power - precision is zero so this turns negative/positive to falsy/truthy
p      Print result

কমান্ড সাবস্টিটিউশনটি ব্যবহার না করে পাইপলাইনে কেবল ডিসি লাগিয়ে দুটি বাইট গল্ফ করা, তারপরে আরেকটি বাইট প্রতিস্থাপন <space>3করে z(সুবিধামতভাবে, আমার কাছে সেই সময়ে স্ট্যাকের 3 টি আইটেম রয়েছে!) এবং আমার এসড প্রোগ্রামের চারপাশে উদ্ধৃতিগুলি প্রতিস্থাপন করে আরেকটি বাইট একক ব্যাকস্ল্যাশ থেকে বাঁচতে&
সোফিয়া ল্যাটারার


1

টিআই-বেসিক (টিআই -৪৪), ১১১ বাইট

:Ans→Str1:"ABCDEFGHIJKLMNOPQRSTUVWXYZ→Str2:"35344527512513031462452312→Str3:0<sum(seq(expr(sub(Str3,inString(Str2,sub(Str1,X,1)),1)),X,1,length(Str1))-3

আমি অন্যান্য উত্তরগুলির মতো বিন্দু-ভারীত্ব নির্ধারণের জন্য একই স্ট্রিংটি ব্যবহার করেছি।
প্রোগ্রামটি সত্যবাদী ( 1) সরবরাহ করে যদি ইনপুট স্ট্রিংটি বিন্দু-ভারী হয়, মিথ্যা ( 0) না হলে।
ইনপুট স্ট্রিং অবশ্যই সর্ব-ক্যাপগুলিতে থাকতে হবে।
ইনপুট সংরক্ষণ করা হয় Ans। আউটপুট সংরক্ষণ করা হয় Ansএবং প্রোগ্রামটি শেষ হয়ে গেলে স্বয়ংক্রিয়ভাবে মুদ্রিত হয়।

Ungolfed:

:Ans→Str1
:"ABCDEFGHIJKLMNOPQRSTUVWXYZ→Str2 
:"35344527512513031462452312→Str3
:0<sum(seq(expr(sub(Str3,inString(Str2,sub(Str1,X,1)),1)),X,1,length(Str1))-3

উদাহরণ:

"HELLO
HELLO
prgmCDGF3
           1
"CODE
CODE
prgmCDGF3
           0

ব্যাখ্যা:
(টিআই-বেসিকের কোনও মন্তব্য নেই, ধরুন যে কোনও কমেন্ট ;নির্দেশ করে)

:Ans→Str1                          ;store the input into Str1
:"ABCDEFGHIJKLMNOPQRSTUVWXYZ→Str2  ;store the uppercase alphabet into Str2
:"35344527512513031462452312→Str3  ;store dot-dash+3 for each letter into Str3

:0<sum(seq(expr(sub(Str3,inString(Str2,sub(Str1,X,1)),1)),X,1,length(Str1))-3 ;full logic

   sum(                                                                       ;sum the elements of
       seq(                                                               )    ;the list evaluated by
                sub(                                    )                       ;the substring of
                    Str3,                                                        ;Str3
                         inString(                  ),                           ;at the index of
                                       sub(        )                              ;the substring of
                                           Str1,                                   ;Str1
                                                X,                                 ;starting at X
                                                  1                                ;of length 1
                                  Str2,                                           ;in Str2
                                                      1                          ;of length 1
           expr(                                        ),                       ;converted to an integer
                                                          X,                    ;using X as the increment variable
                                                            1,                  ;starting at 1
                                                              length(Str1)      ;ending at the length of Str1
                                                                           -3   ;then subtract 3 from all elements in the list
  0<                                                                           ;then check if the sum is greater than 0
                                                                               ;implicitly output the result

দ্রষ্টব্য: একটি প্রোগ্রামের বাইট গণনাটি [এমইএম] > [২] > []] (১২৪ বাইট) এর মান ব্যবহার করে মূল্যায়ন করা হয় তারপরে প্রোগ্রামের নামের দৈর্ঘ্য CDGF3,, (5 বাইট) বিয়োগ করে এবং অতিরিক্ত 8 বাইট ব্যবহার করা হয় প্রোগ্রাম সংরক্ষণ করা:

124 - 5 - 8 = 111 বাইট




0

সি ++ (ভিজ্যুয়াল স্টুডিও 2017 এর সাথে সংকলিত) 171 বাইটস

int f(string i){const char*c="1322131421130102123023121211210120032121323101112232";int j=0,h[2]={0};while(j<sizeof(i)/28)*h+=c[i[j]-97],h[1]+=c[i[j++]-71];return*h>h[1];}

আমরা যদি পরীক্ষার উদ্দেশ্যে উপস্থিত মূল প্রোগ্রামটি গ্রহণ করি তবে এর আরও বেশি কিছু।

এটি হল বর্ণহীন "পরিপাটি" বৈকল্পিক

#include "stdafx.h"
int main()
{
    const int dotCount[] = {1,3,2,2,1,3,1,4,2,1,1,3,0,1,0,2,1,2,3,0,2,3,1,2,1,2};
    const int dashCount[] = {1,1,2,1,0,1,2,0,0,3,2,1,2,1,3,2,3,1,0,1,1,1,2,2,3,2};
    std::cout << "Enter String:\n";
    std::string input;
    std::cin >> input;
    int inputsHeavyness[2] = { 0 };
    for(int i = 0;i < sizeof(input)/sizeof(std::string);i++)
    {
        inputsHeavyness[0] += dotCount[input[i] - 'a'];
        inputsHeavyness[1] += dashCount[input[i] - 'a'];
    }
    if (inputsHeavyness[0] > inputsHeavyness[1])
    {
        std::cout << "Dot Heavy\n";
    }
    else
    {
        std::cout << "Dash Heavy or Neutral\n";
    }
    return 0;
}

সমস্ত ছোট হাত ধরে


1
আপনি একটি টিআইও লিঙ্ক যুক্ত করতে চাইতে পারেন । (এছাড়াও, আমি মনে করি আপনার অবারিত কোডটিতে টাইপ রয়েছে: এটি 22হওয়া উচিত 2))
আর্নল্ড

হ্যাঁ এটি খুব ভাল টাইপও হতে পারে। আমার ধারণা আমি গল্ফযুক্ত সংস্করণে এটি ঠিক করেছি। টিও ওয়েল আমার কাছে সেই স্টাফের কোনও ধারণা নেই (আমি মনে করি আমি এটি একবার দেখেছিলাম এবং এটি ভার্সেস 7 এবং টিওর মধ্যে ফলাফলগুলি পৃথক হতে পারে তাই ব্যবহারকারী সংকলকটি বৈশিষ্ট্যটি প্রদর্শন করতে পারে না? মোটেও ভাল নয়)
der

1
145 বাইট । ফলাফলগুলি ভিএস এবং টিআইওর মধ্যে প্রকৃতপক্ষে পরিবর্তিত হতে পারে। এটি কখনও কখনও আমার জন্যও পরিবর্তিত হয় এবং আমি আসলে জিসিসি ব্যবহার করি (যদিও মিনজিডব্লিউ)।
গ্যাস্ট্রোপনার


1
@ গ্যাস্ট্রোপনার 111 বাইটে বিল্ডিং উভয় অ্যারে এক করে করা; "132...এবং "112...পরিণত "353...এবং 51এর ASCII মান3
ceilingcat

0

সি (১১৮ টি অক্ষর) ওভার-ডট-নেসের জন্য একটি ধনাত্মক মান এবং ওভার-ড্যাশ-নেসের নেতিবাচক মান প্রদান করে

int n(char* c){int v=25124858,d=3541434,i=0,o=0;for(;c[i]!=0;i++)o=(1&(v>(c[i]-65)))>0?(1&(d>>(c[i]-65)))>0?o+1:o-1:o;return o;}

আন-golfed

int n(char* c)
{
  // Bitwise alpha map: 
  // more dots = 1
  // more dashes or equal = 0
  int d=3541434;  
  // validation bit map.
  // dot/dash heavy = 1
  // even = 0
  int v=25124858;
  int i=0,o=0;
  for(;c[i]!=0;i++)   // iterate through all values
  {
    // There is no way to make this pretty
    // I did my best.
    // If the little endian validation bit corresponding
    // to the capitol letter ascii value - 65 = 0,
    // the output does not increment or decrement.
    // If the value is one it increases or decreases based
    // on the value of the d bitmap.
    o=(1& ( v > (c[I] - 65))) > 0 ?
      (1 & (d >> (c[I] - 65))) > 0 ?
        o + 1 :
        o - 1 :
      o;
  }
  return o;
}


আমি সম্পূর্ণরূপে তুলনা বুঝতে পারছি না কবুল হবে 1& ( v > (c[I] - 65)), যা সমান হিসাবে v > c[I] - 65, যা আমি কল্পনা করতে পারবেন না কি মিথ্যা, তাই আমরা যে সমগ্র জিনিস কিছুদিনের জন্য @ceilingcat অন দ্য রিফিং দূর করতে পারবে 56 বাইট
gastropner


0

পাইথন 2, 90 86 বাইট

import morse
s=''.join(morse.string_to_morse(input()))
print s.count('.')>s.count('-')

আমার লোকসে মোর্স লাইব্রেরি নিয়ে কাজ করেছি । -4 বাইট. টিপকে ধন্যবাদ_জোকিং!

এছাড়াও, পাইথন 3 এ এটি 1 বাইট বেশি।

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

import morse
s=''.join(morse.string_to_morse(input()))
print(s.count('.')>s.count('-'))

যদিও প্রশ্নটি ধরে নিয়েছে যে 'এবং এর সংখ্যা সমান হবে না; যদি তারা সমান হয় তবে এই কোডটি সত্য হবে।


মানে, আপনি চাইলে inputপরিবর্তে ব্যবহার raw_inputকরতে পারেন ...
জো কিং

@ জোকিং আমি চেষ্টা করেছি। এটি একটি ত্রুটি ছুঁড়েছিল এবং তাই কাঁচা
ইনপুট

আপনাকে কেবল স্ট্রিংটির চারপাশে উদ্ধৃতি দিতে হবে, যেহেতু inputপ্রোগ্রামটিতে যাওয়ার আগে এটি STDIN- কে দেখায়
জো কিং

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