T9- মত কার্যকারিতা প্রয়োগ করুন


10

আজ আপনার চ্যালেঞ্জ হল টি -9 -র মতো কার্যকারিতা বাস্তবায়ন করা ।

আপনি এমন একটি ফাংশন বাস্তবায়ন করবেন যার কেবলমাত্র 2 টি প্যারামিটার থাকবে।
আপনি একটি স্ট্রিংয়ে 1 টি ফোন নম্বর এবং শব্দের একটি তালিকা সহ একটি পাঠ্য ফাইলের সামগ্রী পাবেন (কোনও সুনির্দিষ্ট নতুন লাইনের স্টাইলটি ধরে নিবেন না)। কার্যকারিতা পরীক্ষা
করতে আপনি https://raw.githubusercontent.com/eneko/data-repository/master/data/words.txt লিঙ্কটি ব্যবহার করতে পারেন , বা ব্যবহার করতে পারেন /usr/share/dict/words( আরও শব্দগুলির জন্য [বন্ধ] শব্দের একটি লিখিত ফাইল চেক করুন) তথ্য)।

আপনি ধরে নিতে পারেন যে আপনি সর্বদা কমপক্ষে 2 নম্বর পাবেন।

নম্বরটি দেওয়া, আপনি শব্দের একটি তালিকা থেকে পড়বেন এবং সেই শব্দগুলিতে বর্ণচিহ্নগুলির ম্যাপিংয়ের সাথে শুরু করে শব্দগুলি ফিরিয়ে দেবেন। এর অর্থ হ'ল ইনপুটটি কেবল 2 থেকে 9 নম্বর হওয়া উচিত।
আপনি যদি অবৈধ ইনপুট পান তবে আপনি যা করতে চান তা করতে পারেন।

যদি কোনও মিল খুঁজে পাওয়া যায় না, আপনি খালি তালিকা, null/ nilঅথবা ফিরিয়ে দিতে পারেন 0

মনে রাখবেন যে সেলফোন কীগুলি তাদের সমতুল্য চরকে ম্যাপ করা হয়েছে:

  • 0 এবং 1 অবৈধ
  • ২ টি ম্যাচ [এবিসি]
  • ৩ টি মিলছে [ডিএফ]
  • ৪ টি ম্যাচ [জিহি]
  • ৫ টি ম্যাচ [জে কেএল]
  • Matches টি ম্যাচ [এমএনও]
  • Matches টি ম্যাচ [pqrs]
  • ৮ টি ম্যাচ [টুভ]
  • এবং 9 ম্যাচ [wxyz]

উদাহরণ:

f('52726')
//returns ["Japan","japan","Japanee","Japanese","Japanesque"...,"larbowlines"]

f('552')
//returns ["Kjeldahl","kjeldahlization","kjeldahlize"...,"Lleu","Llew"]

f('1234')
//makes demons fly out your nose or divide by 0

f('9999')
//returns ["Zyzzogeton"]

f('999999')
//returns [] or null/nil or 0

আপনি আপনার ফাংশনটি চালানোর পরে, আপনি এটি যে কোনও উপায়ে মুদ্রণ করতে পারেন।

নিয়মাবলী:

  • স্ট্যান্ডার্ড লুফোলগুলি ইনভালিড
  • আপনি কিছু ফিরে আসবে, এমনকি যদি তা না হয় null/ nil
    জাভাস্ক্রিপ্ট ফিরে আসবে undefined, তাই এই নিয়ম যদি আপনি কিছু আসতে হবে না।
  • আপনি অন্যের উত্তরগুলি ব্যবহার করতে বা পুনরায় প্রয়োগ করতে বা আমার বাস্তবায়ন অনুলিপি করতে পারবেন না।
  • জাভাস্ক্রিপ্টের জন্য আপনি ধরে নিতে পারেন, ব্রাউজারটি ইতিমধ্যে খোলা হবে এবং স্বয়ংক্রিয় উপাদানটি innerText/ textContent২ য় প্যারামিটার হিসাবে পাস হবে
  • সংকলিত ভাষাগুলির জন্য, আপনি সংকলকটিতে বিশেষ যুক্তিগুলি পাস করতে পারবেন না
  • সংকলক যুক্তির মাধ্যমে আপনি ফাইলের নামটি পেতে পারেন
  • ভেরিয়েবলস, ম্যাক্রোস, গ্লোবাল ভেরিয়েবলস, কনস্ট্যান্টস, অ-মানক ক্লাস এবং ফাংশনের অভ্যন্তরে অন্যান্য মানগুলি পাস করার সমস্ত ধরণের অবৈধ হিসাবে বিবেচিত হবে।
  • জাভাস্ক্রিপ্টে, কীওয়ার্ড ছাড়াই ভেরিয়েবলগুলি varআপনার কোডটিকে অবৈধ করে
  • আপনার ফাংশন নাম দেওয়া হবে f
  • আপনার ফাংশনে আপনার কেবলমাত্র 2 টি যুক্তি থাকতে পারে
  • আপনার কোডটি চালানোর জন্য 500 সেকেন্ডের মধ্যে রাখার চেষ্টা করুন।
  • হোয়াইটস্পেস নিয়ে আপনাকে চিন্তা করতে হবে না
  • আপনাকে অবশ্যই ASCII মুদ্রণযোগ্য অক্ষর ব্যবহার করতে হবে ।
    ব্যতিক্রমগুলি হ'ল এমন ভাষা যা কেবল প্রিন্টযোগ্য অক্ষর ব্যবহার করে (এপিএল এবং হোয়াইটস্পেস 2 উদাহরণ)।

স্কোরিং:

  • সর্বনিম্ন সংখ্যা বাইট জিতেছে
  • আপনার উত্তরে অবৈধ ASCII মুদ্রণযোগ্য অক্ষর থাকা, উত্তরটি ইউটিএফ -32
    এ এনকোড করা হিসাবে গণনা করা হবে এনকোডিংয়ের ব্যতিক্রম আপনার উত্তরটিকে অক্ষর দ্বারা গণনা করবে ।
  • কেবল ফাংশন বডি গণনা করে, আপনি এর বাইরে অন্য কিছু করেন না
  • আপনি যদি প্রতিবেশী বা সর্বাধিক প্রচলিত শব্দের উপর ভিত্তি করে পূর্বাভাস সিস্টেম করেন তবে -30% এর বোনাস
  • আকারের বোনাস -20% যদি আপনি কেবল প্রথম সংখ্যার সাথে সম্পর্কিত প্রতিটি বর্ণের জন্য প্রথম 5 টি ম্যাচ ফেরত দেন (যেমন: 245 'a' দিয়ে শুরু হওয়া 5 টি শব্দ, 5 'বি' দিয়ে শুরু হবে এবং 5 'গ' দিয়ে শুরু হবে )।

জাভাস্ক্রিপ্ট ব্যবহার করে এখানে একটি প্রয়োগের উদাহরণ দেওয়া হল:

function f(phone, words)
{
    var keypad=['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz'];
    var regex='';

    for(var i=0,l=phone.length;i<l;i++)
    {
        regex+='['+keypad[phone[i]]+']';
    }

    var regexp=new RegExp('\\s('+regex+'[a-z]*)\\s','gi');

    return words.match(regexp);
}

এটি চালানোর জন্য, তালিকার লিঙ্কটি খুলুন এবং চালান, উদাহরণস্বরূপ:

f('9999',document.getElementsByTagName('pre')[0].innerText);
//returns [" Zyzzogeton "]

এই উদাহরণটি পরীক্ষা করা হয়েছিল এবং উইন্ডোজ 7 হোম সংস্করণ 64 বিটগুলিতে অপেরা 12.17 64 বীটের অধীনে কাজ করে।


প্রোগ্রামটির দ্বিতীয় যুক্তিটি কি শব্দের সমন্বিত কোনও ফাইলের নাম বা শব্দের তালিকাগুলি?
অপটিমাইজার

@ মার্টিনব্যাটনার ইউটিএফ -8 অন্যায় নয় (এটি এখনও এএসসিআইআই এর চরিত্রগুলিকে 1 বাইট বলে গণ্য করে) তবে আমি এই নিয়মটি পরিবর্তন করেছি।
ইসমাইল মিগুয়েল

@ অপ্টিমাইজার ২ য় যুক্তি শব্দের একটি তালিকা। আপনি চাইলে একটি সংকলক যুক্তির মাধ্যমে ফাইলের নামটি পাস করতে পারেন এবং ফাইলটি পড়তে পারেন। তবে একমাত্র জিনিস যা গণনা করে তা হ'ল ফাংশন বডি।
ইসমাইল মিগুয়েল

@ মার্টিনবাটনার এএসসিআইআই হিসাবে গণনা করে এটি বাইট হিসাবে গণনা করা হচ্ছে। আপনি আমাকে বলতে চান যে এপিএল কোডটিতে 8 টি বিট আকারের 1 বাইট থাকবে?
ইসমাইল মিগুয়েল

2
অনুপযুক্ত বিধিনিষেধের জন্য -1
এজেম্যানসফিল্ড

উত্তর:


3

সিজেম, 28 বাইট

q~{el{'h-_9/-D+3/}%s1$#!},p;

আকারে ইনপুট নেয় "<number>" [<list of words>]

উদাহরণ:

"52726" ["Japan" "japan" "Japanee" "Japanese" "Japanesque" "larbowlines" "ablution" "ablutionary" "abluvion" "ably" "abmho" "Abnaki" "abnegate"]

আউটপুট:

["Japan" "japan" "Japanee" "Japanese" "Japanesque" "larbowlines"]

আপাতত কোনও বোনাসের জন্য যাচ্ছি না।

অনলাইনে কোডটি এখানে চেষ্টা করুন তবে আসল সময় পরিমাপের জন্য এটি জাভা সংকলকটিতে চালান

নোট করুন যে সিজেএম খালি তালিকার মতো প্রতিনিধিত্ব করে ""

কাঁচা শব্দের তালিকাটি সিজেএম তালিকায় রূপান্তর করতে শব্দ কোডের সাথে ইনপুট হিসাবে নিম্নলিখিত কোডটি ব্যবহার করুন:

qN/p

"আপনি একটি স্ট্রিংয়ে একটি ফোন নম্বর এবং শব্দের একটি তালিকা সহ একটি পাঠ্য ফাইলের বিষয়বস্তু পাবেন" -> আপনি কোনও ভিন্ন ব্লকে, ব্যবহারযোগ্য তালিকায় ফাইলটি পড়ার জন্য প্রয়োজনীয় কোডটি প্রয়োগ করতে পারেন?
ইসমাইল মিগুয়েল 21

@ ইসমাইল মিগুয়েল আপনি এই কোডটির অংশ নয়, তবে তালিকাটিকে সঠিক ফর্ম্যাটে রূপান্তর করতে কেবল একটি সহায়ক কোড?
অপ্টিমাইজার 21

যথাযথভাবে। যা আপনার কোড প্রমাণিত করার জন্য পর্যাপ্ত নয় যা প্রদত্ত উদাহরণ হিসাবে শব্দগুলির একটি তালিকা ব্যবহার করতে পারে। তবে আমি যাইহোক যাইহোক, আমি কেবলমাত্র সেই সহায়ক কোডটি চেয়েছিলাম।
ইসমাইল মিগুয়েল

আপনি কি উত্তর যুক্ত করতে পারেন? সম্পাদনা হিসাবে, অন্য অংশে
ইসমাইল মিগুয়েল

যথাযথভাবে। আমি এটার কথাই বলছি! আপনি আরও এটি আরও অনুকূল করতে পারেন কিনা তা দেখতে দিন
ইসমাইল মিগুয়েল

2

জাভা: 395

এটি প্রতিটি সংখ্যার জন্য অনুমোদিত অক্ষরগুলির উপর ভিত্তি করে একটি রেজেক্স প্যাটার্ন গঠন করে এবং তারপরে নীচের যেকোন অক্ষরের সাথে মেলে একটি *।

গল্ফ করা সংস্করণটি এখানে:

static ArrayList<String> f(String n,ArrayList<String> d){String[] k={"","","([A-Ca-c])","([D-Fd-f])","([G-Ig-i])","([J-Lj-l])","([M-Om-o])","([P-Sp-s])","([T-Vt-v])","([W-Zw-z])"};String r="";for(int i=0;i<n.length();++i)r+=k[n.charAt(i)-'0'];r += ".*";Pattern p=Pattern.compile(r);ArrayList<String> a=new ArrayList<String>();for(String w:dictionary)if(p.matcher(w).matches())a.add(w);return a;}

এবং এখানে পঠন-দক্ষতার জন্য বর্ণা .্য সংস্করণ

public static ArrayList<String> f(String phoneNumber, ArrayList<String> dictionary) {

    String[] KEY_VALUES = {"", "", "([A-Ca-c])", "([D-Fd-f])", "([G-Ig-i])",
                                            "([J-Lj-l])", "([M-Om-o])", "([P-Sp-s])",
                                            "([T-Vt-v])", "([W-Zw-z])"};

    String regex = "";
    for (int i = 0; i < phoneNumber.length(); ++i) {
        regex += KEY_VALUES[phoneNumber.charAt(i) - '0'];
    }
    regex += ".*";
    Pattern p = Pattern.compile(regex);
    ArrayList<String> answers = new ArrayList<String>();
    for (String word : dictionary) {
        if (p.matcher(word).matches()) {
            answers.add(word);
        }
    }
    return answers;
}

আপনার কোডটি নিয়ম সংখ্যা rule এর বিপরীতে গেছে: "ভেরিয়েবলস, ম্যাক্রোস, গ্লোবাল ভেরিয়েবল, কনস্ট্যান্টস, অ-স্ট্যান্ডার্ড ক্লাস এবং ফাংশনের অভ্যন্তরে অন্য মানগুলি পাস করার সমস্ত ধরণের অবৈধ হিসাবে বিবেচিত হবে।" এবং এটি বিধি সংখ্যা 3 এর বিপরীতে: "আপনি অন্যের উত্তরগুলি ব্যবহার করতে বা পুনরায় প্রয়োগ করতে বা আমার প্রয়োগটি অনুলিপি করতে পারবেন না" "তবে আপনার কোডে এটি বিতর্কযোগ্য। এবং এটি বিধি 9 এর বিপরীতেও রয়েছে: "আপনার ফাংশনটির নাম দেওয়া হবে f"।
ইসমাইল মিগুয়েল

@ ইসমাইলমিগুয়েল উফস ফাংশনের অভ্যন্তরে ধ্রুবকটি সরানোর মাধ্যমে নিয়ম 7 সহজেই ঠিক করা যায়। আমি আরও ভাল প্রোগ্রামিং শৈলীর জন্য এটি কেবল ফাংশনের বাইরে টানছিলাম। বিধি 9 এছাড়াও একটি সহজ ফিক্স। আমি স্বীকার করি আমি আপনার উত্তরটি পড়িনি, তাই আমি ইচ্ছাকৃতভাবে এটি অনুলিপি করার চেষ্টা করিনি। যদি আপনি মনে করেন যে এটি প্রতিযোগিতার খুব কাছাকাছি হয়ে গেছে তবে আমি আমার উত্তরটি সরিয়ে ফেলতে পারি।
ব্রায়ান জে

আপনার উত্তর ঠিক আছে। আপনার কোডে একটি বাগ আছে। শেষ ধ্রুবক ( ([W-Zw-z)]) এটি হওয়া উচিত ([W-Zw-z])। এবং কোড-গল্ফে আপনাকে প্রোগ্রামিং শৈলী এবং ভাল অনুশীলন সম্পর্কে চিন্তা করতে হবে না: আপনার কোডটি অবশ্যই প্রয়োজনীয় পরামিতিগুলির সাথে এটি করা উচিত। তুমি আমার উত্তর চেক, আপনি এই লাইন দেখতে পাবেন: $s=[2=>abc,def,ghi,jkl,mno,pqrs,tuv,wxyz];। এটি পিএইচপি-র একটি ভয়ঙ্কর 'অপরাধ'। মূলত আমি পিএইচপিকে অস্তিত্বহীন ধ্রুবককে স্টে রূপান্তর করতে বাধ্য করছি। এটি পুরোপুরি গ্রহণযোগ্য। আপনি আরও দেখতে পাবেন যে আমি ভেরিয়েবলটিকে $tকোনও অ্যারে হিসাবে ব্যবহার করার আগে
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল রেজেক্স ত্রুটিতে ভাল ধরা। এটা ইশারা জন্য ধন্যবাদ। আমি আগামীকাল এটি গল্ফ করার চেষ্টা করব; সম্ভবত এই সাইটে কিছু জাভা উদাহরণগুলি সন্ধান করুন।
ব্রায়ান জে

আমি জাভা প্রোগ্রামার নই, তবে আমি আপনাকে কিছু জিনিস বলি। কিছু টিপস পেতে আপনি কোডগল্ফ.স্ট্যাকেক্সেঞ্জার / প্রশ্নগুলি / 67671১/২ পরীক্ষা করতে পারেন । সাধারণ টিপসের মধ্যে অকেজো সাদা স্থান (নিউলাইনস, স্পেসস, ট্যাবগুলি), এক-বর্ণ-দীর্ঘ ভেরিয়েবলের নামগুলি অন্তর্ভুক্ত করা এবং কোডের আকার যতটা সম্ভব কমাতে আপনি যা করতে পারেন তার সমস্ত কিছুই অন্তর্ভুক্ত করে।
ইসমাইল মিগুয়েল

1

সি #। নেট 4.5 235

এই কাজ করা উচিত:

IEnumerable<string>F(string n,string d){IEnumerable<string>w=d.Split(null).ToList();string[]a={"","","abc","def","ghi", "jkl","mno","pqrs","tuv","wxyz"};foreach(var i in n){w=w.Where(x=>x.IndexOfAny(a[i-'0'].ToArray())>0);}return w;}

পিপিসিজিতে আপনাকে স্বাগতম। আপনার কোডটি কাজ করবে তবে আপনাকে এখনও এটি আরও অনেক কমাতে হবে। সমস্ত অকেজো হোয়াইটস্পেস (স্পেস, ট্যাব, নতুন লাইন) সরিয়ে আমি আপনার কোডটি 167 বাইটে হ্রাস করতে সক্ষম হয়েছি। এই কোডটি আরও অনেক হ্রাস করা যেতে পারে, আমি এটি সম্পর্কে নিশ্চিত। আপনার কোডটি আরও সংক্ষিপ্ত করার জন্য আমি কোডগল্ফ.স্ট্যাকেক্সেঞ্জার / প্রশ্নগুলি / ১73৩৩/২ পড়ার পরামর্শ দিচ্ছি । আপনাকে কিছুটা সহায়তা করতে, শব্দের তালিকাটি একটি নতুন স্ট্রিং দ্বারা পৃথক একটি স্ট্রিং এবং আপনি মনে করছেন যে এটি ইতিমধ্যে এটি ব্যবহার করা সম্ভব foreach। যদি আপনি এটি ইতিমধ্যে হওয়ার প্রত্যাশা করেন তবে IEnumerableবাইরে ব্যবহৃত কোডটি অন্তর্ভুক্ত করুন
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল TY আমি এটি দেখব। তালিকাটি একটি অনুমিত হয় যা আমি পোস্ট করেছি তার বাইরে কোনও কোড নেই।
চাওসি 18

আপনি যদি ফাংশনের স্পেসিফিকেশনটি লক্ষ্য করেন তবে দেখতে পাবেন ২ য় প্যারামিটারটিও একটি স্ট্রিং। (উদ্ধৃতি: "আপনি একটি স্ট্রিংয়ে একটি ফোন নম্বর এবং শব্দের তালিকা সহ একটি পাঠ্য ফাইলের বিষয়বস্তু পাবেন (কোনও সুনির্দিষ্ট নিউলাইন শৈলী অনুমান করবেন না।")) এবং আপনার ভারে আপনার 1 টি অকেজো সাদা স্থান রয়েছে a
ইসমাইল মিগুয়েল

আমি আপনার প্রশ্নের উন্নতি লক্ষ্য করেছি এবং আপনাকে একটি উত্সাহ দিয়েছি। তবে আপনি এখনও আপনার aভারে একটি বাইট সংরক্ষণ করতে পারেন । তবে আমি সত্যিই লক্ষণীয় উন্নতি দেখতে পাচ্ছি! ভাল কাজগুলো করতে থাকো.
ইসমাইল মিগুয়েল

1

পাইথন 2 (155 বাইট)

পাইথন 3 এ যথাযথ প্রতিস্থাপনগুলি ( string-> bytes, bস্ট্রিংগুলিতে উপসর্গ ইত্যাদি) নিয়ে কাজ করা উচিত।

আমি নিশ্চিত ছিলাম না যে maketransফাংশনের বাইরে কল করা "ন্যায্য" হিসাবে বিবেচিত হয়; যদি না হয় তবে ফাংশনটি 134 বাইটের সাথে এটির ভিতরে চলে গেছে।

সম্পাদনা: একটি বোকা নিরীক্ষণ থেকে এক বাইট বাদ।

প্রস্তুত maketrans, 67 বাইট সহ:

from string import maketrans
t=maketrans('abcdefghijklmnopqrstuvwxyz','22233344455566677778889999')

def f(n,w):
    return[x for x in w.split()if x.lower().translate(t).startswith(n)]

সঙ্গে maketransশরীরে, 134 বাইট:

from string import maketrans

def f(n,w):
    return[x for x in w.split()if x.lower().translate(maketrans('abcdefghijklmnopqrstuvwxyz','22233344455566677778889999')).startswith(n)]

155 বাইট সহ importএবং maketransশরীরে,

def f(n,w):
    return[x for x in w.split()if x.lower().translate(__import__('string').maketrans('abcdefghijklmnopqrstuvwxyz','22233344455566677778889999')).startswith(n)]

পরীক্ষা কল:

print f('9999',open('words.txt','rt').read())

maketransফাংশন বডির অংশ। আপনি এটি সরানো উচিত। এটি এমনকি সম্ভব কিনা তা আমি জানি না তবে আপনি সরাসরি এটি ব্যবহার করার চেষ্টা করতে পারেন import। আমার মনে হয় আমি এটি কোথাও দেখেছি ... তবে আপনার কোডটি খুব সুন্দর!
ইসমাইল মিগুয়েল

আপনি কি বোঝাতে চাইছেন আমদানি এবং শরীরে কল করা? হ্যাঁ, আমি মনে করি এটিও করা সম্ভব।
ক্রিপটাইচ মনিকার সাথে

আমি ভাবছিলাম t=(from stirng import maketrans)([...])। এটি সম্ভব হলে আমার কোনও ধারণা নেই। তবে আপনি এটি ব্যবহার করতে পারবেন from string import as x t=x([...])যা আমি নিশ্চিত কিনা এটিও সম্ভব কিনা: /
ইসমাইল মিগুয়েল

সঠিক সংস্করণটি সর্বশেষটি। তবে উত্তরটি আমার মতে গ্রহণযোগ্য। +1 এর জন্য __import__('string').maketran
ইসমাইল মিগুয়েল

ঠিক আছে ধন্যবাদ. আমি অবৈধ উত্তরগুলি সরিয়েছি।
ক্রিপটাইচ মনিকার সাথে

0

পিএইচপি 5.4+ (171 186-20% = 148.8 বাইট):

ঠিক আছে, এটি বেশ বিশাল উত্তর, তবে ভাল।

আমি আশা করি এটি আরও বেশি লোককে উত্তর দেবে।

এই ফাংশনটি কাঁচামালটি পড়ার আশা করে ।

কোডটি এখানে:

function f($_,$a){$s=[2=>abc,def,ghi,jkl,mno,pqrs,tuv,wxyz];$a=preg_split('@\r\n|\r|\n@',$a);for($i=0;$c=$_[$i];++$i)foreach($a as$k=>$v)if(!strpos(1..$s[$c],$v[$i])||$t[$v[0]]++>4)unset($a[$k]);return$a;}

চিঠিটি অনুমোদিত অক্ষরের তালিকায় রয়েছে তা যাচাই করে এটি কাজ করে।

উদাহরণ: ইনপুটটি শব্দের প্রথম অক্ষর আছে এবং এটিতে ২ য় বর্ণ রয়েছে 36কিনা 1abcতা খতিয়ে দেখাবে 1def

আমি সংযোজন করেছি 1তাই চিঠিটি 1 ম পজিশনে রয়েছে কিনা তা যাচাই করে না (যা ফিরে আসবে 0এবং এতে মূল্যায়ন হবে false)। if(!strpos(1..$s[$c],$v[$i]))বা if(!strpos($c.$s[$c],$v[$i]))একই প্রভাব ফেলবে, তবে 1 ম আরও বিভ্রান্ত করে এবং আমি এটি পছন্দ করি।

এটি করতে ব্যর্থ হওয়ায় শব্দটি মুছে যাবে।

কোনও শব্দ না রেখে, এটি একটি খালি অ্যারে দেয়।

এটি অনলাইনে পরীক্ষা করতে, http://writecodeonline.com/php/ এ যান এবং লাইনের জন্য একটি শব্দ সহ একটি সাধারণ ভেরিয়েবল তৈরি করুন

একটি পরীক্ষণযোগ্য উদাহরণ:

function f($_,$a)
{
    $s=array(2=>abc,def,ghi,jkl,mno,pqrs,tuv,wxyz);
    $a=preg_split('@\r\n|\r|\n@',$a);

    for($i=0;$c=$_[$i];++$i)
        foreach($a as$k=>$v)
            if(!strpos(1..$s[$c],$v[$i]) || $t[$v[0]]++>4)
                unset($a[$k]);
    return$a;
}

$lines=<<<WORDS
one
two
three
four
five
six
seven
eight
nine
ten
WORDS;

var_dump(f('36',$lines));

এটি আউটপুট করা উচিত:

array(1) {
    [3]=>
      string(4) "four"
}

পুরানো পিএইচপি সংস্করণে কাজ করতে, এর $s=[2=>abc,def,ghi,jkl,mno,pqrs,tuv,wxyz];দ্বারা প্রতিস্থাপন করুন$s=array(2=>abc,def,ghi,jkl,mno,pqrs,tuv,wxyz);


20% বোনাসের জন্য:

কোডটি হ্রাস করতে আমি কেবল যুক্ত করেছি ||$t[$v[0]]++>4, যা প্রথম অক্ষরটি কতবার ব্যবহৃত হয়েছিল তা পরীক্ষা করে।

পিএইচপি-তে, $tসংজ্ঞায়িত করার দরকার নেই, 37.2 বাইটের একটি বড় অংশ হ্রাস করতে সহায়তা করে ।

এই প্রভাবটি দেখতে, নিম্নলিখিত ভেরিয়েবলটি 2 য় আর্গুমেন্ট হিসাবে ব্যবহার করুন:

$lines=<<<WORDS
one
two
three
four
five
six
seven
eight
nine
ten
twelve
time
tutor
test
truth
WORDS;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.