على سبيل المثال ، SSSFGTDFSSDDFSSSSSSS ، الشخصية الأكثر شيوعًا هي S ، والتي تظهر 12 مرة
الكتابة التقليدية
تحليل:
1. قم بإعداد JSON فارغ وانظر إلى كل حرف في السلسلة. إذا لم يكن هناك مثل هذه الشخصية في JSON ، فقم بإنشاء صفيف جديد في JSON ووضع هذه الشخصية في الصفيف. إذا كان هناك هذه الشخصية في JSON ، فاستمر في إضافة الأحرف إلى الصفيف. في هذا الوقت ، بعد اكتمال الحلقة ، توجد صفائف N في JSON.
2. العثور على أطول صفيف في JSON. في هذا الوقت ، يكون الطول هو الرقم ، ومعظم الأحرف هي هذه المعلمة ، باستخدام ... في ... حلقة ومعلمة attr
var str = "sssfgtdfssddfssssssssss" ؛ وظيفة max () {var json = {} ؛ var num = 0 ؛ var value = null ؛ for (var i = 0 ؛ i <str.length ؛ i ++) {var k = str [i] ؛ if (! json [k]) // غير مطلوب هنا ، وإلا فإنه سيتم إضافته فقط عند وجود هذه الشخصية. سيتم تخفيض عدد المرات} لـ (var attr in json) {if (num <json [attr] .length) {num = json [attr] .Length ؛ value = json [attr] [0]ماذا لو كنت لا تريد وضع الأشياء في JSON؟
تحليل:
1. قم بإعداد JSON فارغ ، وانظر إلى كل حرف في السلسلة. إذا لم يكن هناك مثل هذا الحرف في JSON ، فقم بتعيين رقم هذا الحرف إلى 1. إذا كان هناك ، الرقم ++
2. حلقة الشخصيات في JSON ، طالما أنها موجودة ، فسوف يقومون بتعيين رقمها لمتغير ، ومقارنة عدد الأحرف الجديدة بحجم هذا المتغير في كل مرة. إذا كانت أكبر من المتغير ، يتم تحديث قيمة المتغير. أخيرًا ، قيمة هذا المتغير هي عدد معظم الأحرف.
الشخصية الأكثر شيوعًا هي هذه الشخصية في JSON
var str = "sssfgtdfssddfssssss" ؛ function max () {var json = {} ؛ for (var i = 0 ؛ i <str.length ؛ i ++) {var k = str [i] ؛ // k هي جميع الأحرف ، ويمكن أيضًا استرداد السلاسل بواسطة طريقة وضع القوس مثل المصفوفات if (json [k]) {json [k] ++ ؛ // عندما يكون هناك هذا الحرف في JSON ، فإن عدد هذا الحرف هو +1 ،} آخر {json [k] = 1 ؛ // خلاف ذلك ، قم بتعيين رقم هذا الحرف على 1}} var num = 0 ؛ var value = null ؛ for (var k in json) {// s ، f ، g ، t ، dif (json [k]> num) {num = json [k] ؛ value = k ؛}} التنبيه ("الحرف الذي يظهر أكثر:طريقة منتظمة
تحليل:
1. تحويل السلسلة إلى صفيف للفرز ، بحيث يتم تحديد نفس الأحرف المجاورة لبعضها البعض بانتظام.
2. استخدم المعلمتين لطريقة Reply () العادية لمطابقة معظم الأحرف وعدد الأحرف
var str = "SSSFGTDFSSDDFSSSSSSS" ؛ var num = 0 ؛ var value = null ؛ function max () {var new_str = str.split (""). sort (). // no /1 ، Re هي سلسلة مصنفة كاملة. مع /1 ، هو المتكرر الذي يظهر. /1 يعني أن الطفل الأول من قبل هو نفسه new_str.replace (إعادة ، الوظيفة ($ 0 ، $ 1) {// $ 0 يعني أن الكل قد تم إخراجه ، مثل [s ، s ...] ، [f ، f ..] ، [d ، d ....] $ 1 تمثل الحرف في هذا الكل if (num <$ 0.length) {num = $ 0.length ؛ value = $ 1}}) ؛ ALERT (value+":"+num)} ؛ max (str) ؛