لقد كنت أحاول أسئلة لجنة الاتصالات الفيدرالية (FCC) مؤخرًا ، تمامًا مثل الترقية لمحاربة الوحوش ، لقد مررت بمستوى واحد في وقت واحد ، وهو أمر جذاب للغاية بالنسبة لي. لقد أخذت الوقت الكافي للقيام بجزء من الخوارزمية الأساسية اليوم. وفقًا لبعض النصائح ، يكون الأمر بسيطًا نسبيًا. أعتقد أن أساليب التعامل مع بعض الأسئلة تستحق التعلم منها. على سبيل المثال ، في بعض الأحيان يتعين عليك معالجة شخصية في المشروع. إذا لم تتمكن من التفكير في بعض الأساليب ذات الصلة ، فهذا أمر مزعج للغاية. لذلك ، سجله هنا. إذا واجهت بعض الشخصيات أو معالجة الصفيف في المستقبل ، فيمكنك البحث في هذه المقالة ، على أمل الحصول على بعض المطالبات بدلاً من ترجمة المستند.
إذا رأيت هذا المدون ، إذا كان لديك رمز أفضل وأكثر بساطة أو أفكار جيدة ، فيرجى ترك رسالة للتواصل (أعتقد دائمًا أنه من خلال تعلم رمز الآخرين الممتاز ، يمكنك إحراز تقدم أسرع وتفكير أكثر مرونة). للمبتدئين ، حاول أن تفعل ذلك بنفسك دون النظر إلى الرمز. (لا تحتاج الأسئلة التالية إلى النظر في أنواع المعلمات. بالمعنى الدقيق للكلمة ، يجب إصدار حكم على أنواع المعلمات ، على سبيل المثال: Typeof (Arg) === Number)
1. تعويض سلسلة
سلسلة الوجه
قم أولاً بتحويل السلسلة إلى صفيف ، ثم استخدم الطريقة العكسية للمصفوفة لقلب ترتيب الصفيف ، وأخيراً تحويل المصفوفة إلى سلسلة.
يجب أن تكون نتيجتك سلسلة
وظيفة الانعكاس (str) {str = str.split (''). revers (). Join ('') ؛ return str ؛} ReverseString ("Hello") ؛2. تحقق من palindromes
إذا كانت السلسلة المعطاة هي palindrome ، فالتراجع صحيحًا ، وإلا ، خطأ.
إذا تتجاهل السلسلة علامات الترقيم والحالة والمساحات ، وتقرأ مباشرة وقراءة معاكسة ، فإن هذه السلسلة هي palindrome (palindrome).
لاحظ أنك تحتاج إلى إزالة علامات الترقيم الإضافية ومسافات السلسلة ، ثم تحويل السلسلة إلى صغرى للتحقق من أن السلسلة هي palindrome.
يمكن أن تكون قيمة معلمات الوظيفة "Racecar" و "Racecar" و "Race Car".
وظيفة palindrome (str) {// حظا سعيدا! str = str.replace (/[/|/~ |/`|/! علامات الترقيم ، هذه هي Baidu ، وأنا لست على دراية بقواعد JS = str.place (// s+g) ؛ خطأ ؛ false.palindrome ("relectomla") يجب أن يعود false.palindrome ("عمري هو 0 ، 0 si ega ym.")3. القضية الجملة
تأكد من أن الحرف الأول من كل كلمة في السلسلة يتم رسملة والباقي صغير. (على سبيل المثال: يجب أن تعود TitleCase ("أنا القليل من شاي") "أنا القليل من وعاء الشاي". يجب أن يعود TitleCase ("Short and Stout")
/*هذا السؤال بسيط للغاية. الشيء الرئيسي هو أن نفهم أن Split () هو تقسيم سلسلة إلى صفيف Join () هو تحويل الصفيف إلى تحويل حالة TolowerCase () touppercase (). لاحظ أنه صحيح فقط للرسائل ، والأحرف الأخرى (على سبيل المثال:/،!@) غير صالحة*/وظيفة titlecase (str) {str.split ("") ؛ // تقسيم السلسلة في صفيف وفقًا للمسافات لـ (var i = 0 ؛ i <str.length ؛ i ++) {str [i] = str [i] str [i] = str [i] .SubString (0 ، 1) .ToupperCase () + str [i] .SubString (1) ؛ } return str.join ("") ؛ // قم بتوصيل المصفوفة بسلسلة من خلال SPACES} titlecase ("أنا القليل من وعاء الشاي") ؛4.CHINCINCING نهاية
يتحقق ما إذا كانت سلسلة (Str) تنتهي بالسلسلة المحددة (الهدف).
إذا كانت الإجابة بنعم ، ارجع صحيحًا ؛ إذا لم يكن الأمر كذلك ، فأعود كاذبة. على سبيل المثال: تأكيد ("Bastian" ، "N") يجب أن يعود صحيحًا. تأكيد ("كونور" ، "N") يجب أن يعود خطأ. من السهل تأكيد ("المشي على الماء وتطوير البرامج من المواصفات إذا تم تجميد كلاهما" ، "المواصفات") على خطأ.
وظيفة تأكيد (STR ، Target) {// "لا تستسلم أبدًا وسوف يجدك حظًا سعيدًا." //-Falcor Return Str.substr (str.length-target.length) == Target؟ صحيح: خطأ ؛ خطأ ؛} تأكيد ("باستيان" ، "n") ؛ تأكيد ("عليه أن يعطيني اسمًا جديدًا" ، "NA") ؛/*يجب أن يعود "Bastian" ، "N") false.confirming ("يجب أن يعطيني اسمًا جديدًا" ، "اسم") يجب أن يعود True.Conforming ("عليه أن يعطيني اسمًا جديدًا" ، "أنا") يجب أن يعود صحيحًا.5. تكريس سلسلة كرر السلسلة
قل أشياء مهمة 3 مرات!
كرر الأوقات المحددة للسلسلة المحددة ، وأرجع سلسلة فارغة إذا كان NUM رقمًا سالبًا. على سبيل المثال:
كرر ("*" ، 3) يجب أن تعود "***".
كرر ("ABC" ، 3) يجب أن يعود "ABCABCABC".
كرر ("ABC" ، 4) يجب أن يعود "AbcabCabCabc".
كرر ("ABC" ، 1) يجب أن تعود "ABC".
كرر ("*" ، 8) يجب أن تعود "*********".
كرر ("ABC" ، -2) يجب أن تعود "".
عندما لا تتمكن من إكمال التحدي ، تذكر استخدام الخطوة النهائية "read-search-ass".
إليك بعض الموارد التي ستساعدك:
• كائن السلسلة العالمي
تكرار الوظيفة (str ، num) {// كرر بعدني var newsstr = str ؛ if (num> 1) {for (var i = 1 ؛ i <num ؛ i ++) {str += newstr ؛ } إرجاع str ؛ } آخر إذا (num == 1) {return str ؛ } آخر {return "" ؛ }} تكرار ("ABC" ، 3) ؛ كرر ("*" ، 3) ؛6.Chunky Monkey
القرود تأكل الموز ولكنها تقسمها إلى عدة أقسام لتناولها!
قسّم Array ARR إلى عدة كتل صفيف وفقًا لحجم الصفيف المحدد.
على سبيل المثال: قطعة ([1،2،3،4] ، 2) = [[1،2] ، [3،4]] ؛
قطعة ([1،2،3،4،5] ، 2) = [[1،2] ، [3،4] ، [5]] ؛
دالة chunk (arr ، size) {// break It Up.Var Arr1 = [] ؛ لـ (var i = 0 ؛ i <arr.length ؛ i = i + size) {var arr2 = arr ؛ arr1.push (arr2.slice (i ، i + size)) ؛ } return arr1 ؛} chunk (["A" ، "B" ، "C" ، "D"] ، 2) ؛7. الحارس
ملك القرد الحقيقي والمزيف!
حذف جميع القيم الخاطئة في الصفيف.
في JavaScript ، القيم الخاطئة خاطئة ، لاغية ، 0 ، "" ، غير محددة ، و NAN.
عندما لا تتمكن من إكمال التحدي ، تذكر استخدام الخطوة النهائية "read-search-ass".
إليك بعض الموارد التي ستساعدك:
• الأشياء المنطقية
• Array.Filter ()
على سبيل المثال:
يجب أن يعود Bouncer ([7 ، "ate" ، "" ، false ، 9]) [7 ، "ate" ، 9].
يجب أن يعود Bouncer (["A" ، "B" ، "C"]) ["A" ، "B" ، "C"].
يجب أن يعود الحارس ([false ، null ، 0 ، nan ، غير محدد ، ""]) [].
يجب أن يعود الحارس ([1 ، خالية ، نان ، 2 ، غير محدد]) [1 ، 2].
/* هذا السؤال يدور حول فهم المرشح. هذا هو الكود الأولي الخاص بي. إنه ليس مكتوبًا جيدًا ولديه قيمة مرجعية ضئيلة. يجب عليك أيضًا الانتباه إلى مقارنة NAN. نفسك ليست مساوية لنفسك (nan! = nan)*/وظيفة bouncer (arr) {// لا تظهر معرفًا كاذبًا لهذا الحارس. var arr1 = [] ؛ var J = 0 ؛ arr.filter (function (val ، index) {if (val === false || val === null || val === 0 || val ==== "" var len = arr1.length ؛ لـ (var i = 0 ؛ i <len ؛ i ++) {arr.splice (arr1 [i] -j ، 1) ؛ J ++ ؛ } return arr ؛} bouncer ([7 ، "ate" ، "" ، false ، 9]) ؛8. انظر وتدمير
هاون Jinx!
تنفيذ وظيفة المدمرة ، والمعلمة الأولى هي الصفيف الذي يتم تدميره ، والمعلمات المتبقية هي القيم التي سيتم تدميرها.
على سبيل المثال:
يجب أن يعود المدمرة ([1 ، 2 ، 3 ، 1 ، 2 ، 3] ، 2 ، 3) [1 ، 1].
يجب أن يعود المدمرة ([1 ، 2 ، 3 ، 5 ، 1 ، 2 ، 3] ، 2 ، 3) [1 ، 5 ، 1].
المدمرة ([3 ، 5 ، 1 ، 2 ، 2] ، 2 ، 3 ، 5) يجب أن تعود [1].
المدمرة ([2 ، 3 ، 2 ، 3] ، 2 ، 3) يجب أن تعود [].
يجب أن تعود المدمرة (["شجرة" ، "همبرغر" ، 53] ، "شجرة" ، 53) ["الهامبرغر"].
إليك بعض الموارد التي ستساعدك:
• حجج كائن
• Array.Filter ()
دالة Destroyer (arr) {// إزالة جميع القيم var temparguments = وسيطات ؛ return arr.filter (function (intrad) {for (var i = 1 ؛ i <temparguments.length ؛ i ++) {if (entry == temparguments [i]) {return false ؛}} return true ؛}) ؛} Destroyer ([1 ، 2 ، 3 ، 2 ، 3 ، 2 ، 3) ؛9. أين أنتمي
اين انا
قم أولاً بفرز الصفيف ، ثم ابحث عن القيمة المحددة في موقع الصفيف ، وأخيراً إرجاع الفهرس المقابل للموقع.
على سبيل المثال: حيث يجب أن يعود ([1،2،3،4] ، 1.5) 1. لأنه يتم إدراج 1.5 في الصفيف [1 ، 2 ، 3 ، 4] ويصبح [1 ، 1.5 ، 2 ، 3 ، 4] ، وقيمة الفهرس المقابلة لـ 1.5 هي 1.
وبالمثل ، حيث ([20،3،5] ، 19) يجب أن تعود 2. لأنه سيتم فرز الصفيف أولاً على أنه [3،5،20] ، يتم إدراج 19 في الصفيف [3،5،20] ويصبح [3،5،19،20] ، وقيمة الفهرس المقابلة لـ 19 هي 2.
إليك بعض الموارد التي ستساعدك:
• array.sort ()
وظيفة حيث (arr ، num) {// ابحث عن مكاني في هذه المجموعة المصنفة. // لاحظ SIND () sort () sort arr.sort (function (a ، b) {return a- b ؛}) ؛ لـ (var i = 0 ؛ i <arr.length ؛ i ++) {if (arr [i]> num | arr [i] == num) {return i ؛ }} return arr.length ؛} حيث ([5 ، 3 ، 20 ، 3] ، 5) ؛10.caesars الشفرات
دع الله ينتمي إلى الله وقيصر ينتمي إلى قيصر.
بعد ذلك ، سنقدم Caesar Password Caesar Cipher ، والمعروف أيضًا باسم SHIFT Password ، والتي تحظى بشعبية في جميع أنحاء العالم.
تعني كلمة مرور التحول أن الحروف الموجودة في كلمة المرور سيتم تحويلها وفقًا للرقم المحدد.
الحالة الشائعة هي كلمة مرور ROT13 ، وسيتم تحويل الحروف إلى 13 موقعًا. بواسطة 'a' ↔ 'n' ، 'b' ↔ 'o' ، وهكذا.
اكتب وظيفة ROT13 لتنفيذ السلسلة المشفرة للإدخال وإخراج السلسلة المطلقة.
يتم رسملة جميع الحروف ، ولا تقم بتحويل أي أحرف غير حرفية (على سبيل المثال: المساحات ، علامات الترقيم). إذا واجهت هذه الشخصيات الخاصة ، تخطيها.
على سبيل المثال:
يجب فك تشفير ROT13 ("Serr PBQR PNZC") إلى "معسكر الكود الحر"
يجب فك تشفير ROT13 ("Serr CVMMN!") كـ "بيتزا مجانية!"
يجب فك تشفير rot13 ("Serr ybir؟") على أنه "حب حر؟"
ROT13 ("Gur DHVPX OEBJA QBT WHZCRQ BIRE GUR YNML SBK.")
إليك بعض الموارد التي ستساعدك:
• string.charcodeat ()
• string.fromcharcode ()
وظيفة ROT13 (str) {// lbh qvq vg! var arr = str.toupperCase (). split ("") ؛ var str1 = [] ؛ لـ (var i = 0 ؛ i <arr.length ؛ i ++) {var arr1 = arr [i] .split ("") ؛ لـ (var j = 0 ؛ j <arr1.length ؛ j ++) {var num = arr1 [j] .CharCodeat () ؛ if (num> = 65 && num <= 90) {arr1 [j] = num + 13> 90؟ string.fromcharcode (64 + (num + 13 - 90)): string.fromcharcode (num + 13) ؛ // 64 + (num + 13 - 90) لفهم سبب كونه 64 ،}} str1.push (arr1.join ("")) ؛ } return str1.join ("") ؛} // تغيير المدخلات أدناه إلى testRot13 ("Serr PBQR PNZC") ؛تناقش المقالة أعلاه باختصار بعض مشاكل الخوارزمية الأساسية في الشخصية والمصفوفة في JS هي كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.