জিআইফ - জিফ, জিফ - জিফ


24

অনুমতি নিয়ে @ ডাউনগোট থেকে চুরি হয়েছে

এই চ্যালেঞ্জের মূল বিষয়টি হ'ল "জিআইএফ" এর উচ্চারণ নিয়ে বিতর্ক নিষ্পত্তি করা।

জিফ বনাম জিফ"


জিআইফের উচ্চারণটি বিতর্কিত হয় এবং এটি জিফ হিসাবে উচ্চারণ করা (এবং হওয়া উচিত) , এটি এখনও সাধারণভাবে বিতর্কিত uted

এই চ্যালেঞ্জে আপনাকে শব্দের সাথে উচ্চারণ করা শব্দের প্রতিনিধিত্ব করে একটি জি বা জে রয়েছে এমন শব্দের একটি সেট দেওয়া হবে । আপনি কিছু পাঠ্যও পাবেন যাতে আপনাকে জিআইএফের ভুল বানান ঠিক করতে হবে ।

কারণ এটি ইন্টারনেট এবং সকলেই সর্বদা ভুল। এগুলি সংশোধন করা সাধারণ সৌজন্যমূলক (নয়)।

একটি ভুল উচ্চারণের উদাহরণটি হ'ল:

একটি ত্রুটি ঘটেছে GIF একটি burrito খাওয়া একটি ইঁদুরের

জিআইএফ এর ভুল বানান ? অগ্রহণীয়! এটি অবিলম্বে সংশোধন করতে হবে:

সেখানে একটি মাউসের একটি জিফ ছিল (যেমন বয়ামে) বুড়ো খাচ্ছিল

আমরা কি সম্পন্ন করেছি? না, তুমি এখনও ভুল

তুমি সবসময় ভুল

এটি অবশ্যই অন্যভাবে কাজ করবে:

ইন jif বিড়াল একটি বিড়াল একটি টুপি পরতেন

এই স্পষ্টত ভুল বানান অবশ্যই স্থির করা উচিত, আমরা এটি এটিকে সংশোধন করব:

ইন (গ্রাফিক হিসেবে) GIF বিড়াল একটি বিড়াল একটি টুপি পরতেন

বিধি

  • ইনপুট হ'ল একটি স্ট্রিং (বাক্য) এবং স্ট্রিংগুলির একটি অ্যারে (বা কোনও যুক্তিসঙ্গত বিকল্প, যেমন কমা দ্বারা পৃথক স্ট্রিং) কোনও ক্রমে
  • আপনি যে কোনও ক্রমে gএবং jশব্দগুলি নিতে পারেন । সেগুলি আলাদাভাবে নেওয়া যেতে পারে।
  • gifবাক্যের প্রতিটি ক্ষেত্রে (যে কোনও ক্ষেত্রে) প্রতিস্থাপন করতে হবে jif (as in ___)যেখানে স্ট্রিংয়ের অ্যারে থেকে ___শুরু করে অভিন্ন র্যান্ডম নির্বাচিত শব্দ jএবং এর বিপরীতে jifশব্দটি শুরু হওয়া উচিত g
  • কেবলমাত্র শব্দ gifএবং jifপ্রতিস্থাপন করা উচিত (অর্থাত্ "jiffy" পরিবর্তন করা উচিত নয়)। এই শব্দগুলি কোন ভুল করেনি।
  • আপনাকে গ্যারান্টিযুক্ত যে অ্যারেতে অন্তত একটি শব্দ শুরু হয় gএবং কমপক্ষে একটি দিয়ে শুরু হয় j
  • কেস অবশ্যই সংরক্ষণ করতে হবে (যেমন GiF-> JiF)।
  • আপনি একটি প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন
  • স্ট্যান্ডার্ড লুফোলস প্রযোজ্য
  • আমাদের তর্কটি দ্রুত নিষ্পত্তি করা দরকার (নয়); বাইটস মধ্যে সংক্ষিপ্ত কোড

উদাহরণ

ইনপুট এবং আউটপুট একক লাইনের দ্বারা পৃথক:

graphic, jar, jam, gram
I saw a jif of how to pronounce gif that showed gif is pronounced jif

I saw a gif (as in graphic) of how to pronounce jif (as in jar) that showed jif (as in jam) is pronounced gif (as in gram)


gravy, jeff
G is for gIf, h is for JiF, i is for gIF, j is for JIf

G is for jIf (as in jeff), h is for GiF (as in gravy), i is for jIF (as in jeff), j is for JIf (as in gravy)

joke, june, gorilla, great
Jiffy should not be treated as a GIF or JIF, like gifted.

Jiffy should not be treated as a JIF (as in june) or GIF (as in great), like gifted.

3
The pronunciation of gif is debated and while it's supposed to be (and should be) pronounced **gif,** it's still commonly disputed.এফটিএফওয়াই;)
ড্রাকো 18

15
জিরাফিকাল ইন্টারচেঞ্জ ফর্ম্যাট :)
মিখাইল ভি

3
(দ্য জি চুপচাপ))
ডেভিড কনরাড

6
এটি অবশ্যই জোহানের মতোই জিফ। সাউন্ড ফুরুইস বানানোর মতো।
আর ..

2
ডাউনটাতে প্রলোভিত হয়েছে কারণ এটি এজি এবং নয় এজে-র সাথে উচ্চারিত হয়েছে
স্ট্যান স্ট্রাম

উত্তর:


6

গণিত, 164 165 বাইট

এটি একটি ঘৃণা, তবে আমি চাই কেউ আমার ব্যথা ভাগ করে নেবে।

StringReplace[f[f@"g"="j"]="g";f[f@"G"="J"]="G";z=IgnoreCase->1>0;#,x:"g"|"j"~~y:"if ":>{f@x,y,"(as in ",RandomChoice@StringCases[#2,f@x~~Except[","]..,z]}<>") ",z]&

Functionযা প্রত্যাশা করে যে প্রথম যুক্তিটি #বাক্যটি সংশোধন করে (ইন) করা হবে এবং দ্বিতীয় যুক্তিটি #2কমা দ্বারা পৃথক হওয়া শব্দের স্ট্রিং হবে।

f[f@"g"="j"]="g";f[f@"G"="J"]="G"একটি ফাংশন সংজ্ঞায়িত fযা অক্ষর লাগে g, G, j, এবং Jতাদের উপযুক্ত প্রতিস্থাপন করতে। এটি এর চেয়ে কখনও সামান্য খাটো f@"g"="j";f@"j"="g";f@"G"="J";f@"J"="G"

আমি এটির zসমানও সেট করেছি IgnoreCase->Trueযেহেতু আমি এটি দুটিবার ব্যবহার করব।

x:"g"|"j"~~y:"if "যা একটি StringExpressionমিল "gif "বা "jif "প্রথম অক্ষর xএবং শেষ তিনটি অক্ষরের নামকরণ y। যেহেতু বিকল্পটি z(হিসাবে পরিচিত হিসাবেও IgnoreCase->True) পাস করা হয়েছে StringReplace, এই অক্ষরগুলি উচ্চ এবং নিম্ন ক্ষেত্রে কোনও সংমিশ্রণে থাকতে পারে।

আমি তখন এর সাথে প্রতিটি ম্যাচ প্রতিস্থাপন করি

{f@x,y,"(as in ",RandomChoice@StringCases[#2,f@x~~Except[","]..,z]}<>") " 

RandomChoice@StringCases[#2,f@x~~Except[","]..,z]দ্বিতীয় যুক্তির বাইরে এলোমেলোভাবে একটি শব্দ নির্বাচন করে #2যা শুরু হয় f[x], আবার কেস উপেক্ষা করে কারণ বিকল্পটি zদেওয়া হয়েছে।


3
আপনি এই জন্য গণিত ব্যবহার করবেন কেন? কি দারুন.
নীল এ।

1
IgnoreCase->True=>IgnoreCase->1<2
ক্যালকুলেটরফলাইন

1
@CalculatorFeline আমি আসলে ইতিমধ্যে সংক্ষিপ্ত Trueকরার 1>0শুধু আমার ব্যাখ্যা নেই :),
ngenisis

আপনি অন্য কোথাও পুরোপুরি গল্ফ কোড স্নিপেট ব্যবহার করেন। কেন নেই?
ক্যালকুলেটরফলাইন

1
@ ক্যালকুলেটরফলাইন আমার ধারণা, কারণ আমি সেই ক্ষেত্রে কোডটি উদ্ধৃত করছিলাম না, আমি বর্ণনা দিয়েছিলাম এটি কী করেছিল, যা ভেরিয়েবলকে zসমানভাবে সেট করে IgnoreCase->True। আমি পরে একই জিনিসটি করেছি: "যা দিয়ে শুরু হয় f[x]"। ¯\_(ツ)_/¯
নেজিনিসিস

5

রুবি , 88 87 91 বাইট

ইটিএইচ প্রডাকশন থেকে -1 বাইট। +4 বাইট কারণ "gif" বা "jif" যুক্ত শব্দগুলি প্রতিস্থাপন করা উচিত নয়। -2 বাইট কারণ প্রতিস্থাপন শব্দের তালিকা এখন আলাদাভাবে নেওয়া যেতে পারে।

->s,g,j{s.gsub(/\b(g|j)if\b/i){$&.tr("GgJj","JjGg")+" (as in #{($1[/g/i]?j:g).sample})"}}

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


6
আপনি কি পরিবর্তন ([gj])করতে পারেন (g|j)? (আইডিকে অনেকটা রুবি তবে আমি জানি না
রেজেেক্স

3

সিজেম , 78 বাইট

l',%:A;lS%{_ela"gifjif"3/&{_V=_el:B'g=1W?Z*+V\t" (as in "A{V=elB=!},mR')}O?S}%

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

কমা ছাড়া অন্য কিছু দ্বারা আলাদা করার জন্য প্রতিস্থাপনের অক্ষরের তালিকার প্রয়োজন।


ব্যাখ্যা:

l',%                        e# read line of input and split at commas
    :A;                     e# store in var A and pop off the stack
       lS%{...}%            e# for each word in the next line of input so:

_ela"gifjif"3/&             e#   intersection of ["gif" "jif"] and [lowercase(word)]
               {...}O?      e#   if set it non-empty, run block below, otherwise do nothing (push empty string)
                      S     e#   push space

_V=                         e#     extract first char
   _el:B                    e#     duplicate to lowercase and store in var B
        'g=1W?Z*+           e#     convert g/G <=> j/J
                 V\t        e#     store back to word
" (as in "                  e#     push string
           A{V=elB=!},      e#     filter replacements by words starting with the same char (case insensitive)
                      mR    e#     select random element
                        ')  e#     push ')' char

জিআইএফ / জিআইফ কমা দ্বারা অনুসরণ করা হয় এমন উদাহরণে কাজ করে না।
মাইকেল বোজার 0

1

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

lambda s,g,j:' '.join([(w if False in(w[0]in q,w[1:2]in['i','I'],w[2:3]in['f','F'],w[3:]in",;!?.")else q[w[0]]+w[1:3]+" (as in "+choice(g if w[0]in 'jJ'else j)+')'+w[3:])for w in s.split()])
from random import*
q=dict(zip("gGjJ","jJgG"))

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

এটি আমি সবচেয়ে ভাল করতে পারি - এটি দ্রুত করার কিছু উপায় হতে পারে (সম্ভবত রেজিক্স সহ) তবে আমার মস্তিষ্কে এখন ব্যথা।

ব্যাখ্যা: qএকটি সাধারণ অভিধান ম্যাপিং, আমি আশা করি এটি পরিষ্কার। s,g,jইনপুট স্ট্রিং, জি-শব্দের তালিকা এবং জে-শব্দের তালিকা। শব্দের তালিকাগুলির জন্য ' '.joinতালিকাভুক্ত তালিকাটি বোঝার জন্য একসাথে যোগদান করে for w in s.split()

মাঝের বিটটি কালো যাদু, যা আমি টুকরো টুকরো করে ভেঙে দেব। প্রথমত, শর্ত: False in(w[0]in q,w[1:2]in['i','I'],w[2:3]in['f','F'],w[3:]in",;!.")

w[0]in qপ্রথম অক্ষরটি কীগুলির কীতে রয়েছে qতা যাচাই করে 'g','G','j','J'qপরিবর্তনশীল হিসাবে আলাদা হওয়ার কারণ হ'ল আমরা এটিকে পরে ডিক / মানচিত্র হিসাবে ব্যবহার করি।

w[1:2]in ['i','I']চেক দ্বিতীয় চরিত্র যে হয় আমি বা আই: 2 প্রয়োজনীয় কারণ শুধু নির্বাণ হয় w[1](! আমি ভেবেছিলাম তারা করেনি, যাই হোক না কেন) 1 অক্ষর শব্দের উপর একটি ক্র্যাশ ফলে, কিন্তু টুকরা না কোনো কারণে যে

w[2:3]in ['f','F']সাদৃশ্যপূর্ণ। আমার কাছে সংক্ষেপে এটি ছিল মাত্র 2: আমি বুঝতে পারার আগে আমার জিআইএফ, বা জিআইএফ এর জন্য অ্যাকাউন্টিং করা দরকার, তার পরে বিরামচিহ্ন!

w[3:]in",;!?."পরবর্তী অক্ষর (গুলি) বিরামচিহ্ন যা পরীক্ষা করে। আমি স্বীকার করি যে কেউ যদি 'জিআইএফ ?!' রাখেন তবে আমার কোডটি কাজ করে না তবে আমি নিখুঁত হতে পারি না। জিআইএফ বা জিআইএফ-এর আগে অন্য কেউ উদ্ধৃতি খোলার চ্যালেঞ্জ নিতে পারে।

False in(,,,)মূলত একটি বড় নন্দ। এটা আসলে সঙ্গে চার আইটেম পৃথক হিসাবে একই bytecount এর andএবং আর্গুমেন্ট সোয়াপিং এই সৌন্দর্য শীতল এবং কাজ ভাল, কিন্তু আপনি তা একটি পঞ্চম প্রসারিত করার আছে যদি andইডি জিনিস।

w ifএর অর্থ হ'ল যদি মিথ্যা শর্তসাপেক্ষ তালিকায় থাকে তবে আমরা কেবল অপরিবর্তিত শব্দটি ফিরিয়ে দিই - এটি আমাদের মানদণ্ডগুলি পূরণ করে না। else, আমরা এটিকে পরিবর্তন করি:

q[w[0]]+w[1:3]+" (as in "+choice(g if w[0]in 'jJ'else j)+')'+w[3:]

ঠিক আছে. q[w[0]]প্রথম অক্ষরটি সঠিকভাবে প্রতিস্থাপন করে। w[1:3]আই বা আমি এবং এফ বা এফের w[3:]উপর নজর রাখুন, কোনও অনুমান বিরামচিহ্নের উপর নজর রাখুন। এটি ধারা হিসাবে হিসাবে ছেড়ে দেয়।

" (as in "+choice(g if w[0]in 'jJ'else j)+')'শুরু এবং পিছনের প্রথম বন্ধনী এ সুস্পষ্ট স্ট্রিং আক্ষরিক রাখে, এখানে আকর্ষণীয় বিট choice(g if w[0]in 'jJ'else j)যা এলোমেলোভাবে থেকে তা চয়ন gবা j, যদি তার উপর নির্ভর করে w[0]রয়েছে 'jJ'। এবং আমি ঠিক বুঝতে পেরেছিলাম যে আমার এই বিটটি পিছনের দিকে তাই ঠিক করা হয়েছে যা সম্পন্ন হয়েছে।

এটি একটি দীর্ঘ দিন ছিল. choiceহয় randomমডিউল অত: পর আমদানি করুন। আমার মনে হয় এটাই সব।


0

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

(s,g,j,r=l=>l[Math.random()*l.length|0])=>s.replace(/\b[gj]if\b/gi,w=>`GJgj`[l=`JGjg`.search(w[0])]+w.slice(1)+` (as in ${r([g,j,g,j][l])})`)

পৃথক gএবং jশব্দের তালিকা গ্রহণ করে।


0

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

f=(s,g,j)=>s.replace(/\b(g|j)(if)\b/ig,(m,p,c)=>`${a=g,p=="j"?"g":p=="J"?"G":(a=j,p=="g"?"j":"J")}${c}(as in ${a[Math.floor(Math.random()*a.length)]})`)

আমি সম্ভবত টার্নারি অংশটি আরও গল্ফ করতে পারি তবে আমি এখনই কীভাবে তা ভাবতে পারি না। এছাড়াও, এটি পৃথকভাবে জি এবং জ শব্দগুলি লাগে।

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