لینک‌های مفید برای شرکت در مسابقه:

در زمان مسابقه می‌توانید سوال‌های خود را از قسمت "سوال بپرسید" مطرح کنید.

تخمین زمان مطالعه


برای آشنایی بیشتر شما با نحوه‌ی کار با سیستم داوری کوئرا و قابلیت‌های آن برای اجرای سؤالات PHP می‌توانید از این ویدئو نیز کمک بگیرید. همچنین این سوال به عنوان نمونه برای شما حل می‌شود.

بر اساس آمار گزارش‌شده، میانگین سرعت مطالعه‌ی افراد در اینترنت بین ۲۰۰ تا ۲۵۰ واژه در هر دقیقه است. احتمالاً وبلاگ‌هایی را دیده‌اید که در آن‌ها زمان تقریبی مطالعه‌ی هر پست زیر عنوان آن نوشته شده است. از شما می‌خواهیم این قابلیت را پیاده‌سازی کنید.

جزئیات پروژه🔗

تابعی با نام estimateReadingTime پیاده‌سازی کنید که یک رشته از کاربر دریافت کرده و زمان مطالعه‌ی پست را برحسب دقیقه برگرداند. این تابع باید تعداد کلمات موجود در متن را تقسیم بر ۲۰۰ کرده و سقف آن را برگرداند. هم‌چنین، کاراکترهای .، ?، !، ,، ; و : باید نادیده گرفته شوند. کلمات با یک یا چند کاراکتر ' '، '\t' یا '\n' از یکدیگر جدا شده‌اند. هم‌چنین، تفاوتی برای طول کلمات قائل نمی‌شویم.

امضای تابع estimateReadingTime به‌صورت زیر خواهد بود:

function estimateReadingTime(string $text): int
{
    // TODO: Implement
}
PHP

مثال🔗

<?php

function estimateReadingTime(string $text): int
{
    // TODO: Implement
}

function randomText(int $wordsCount): string
{
    $words = [];
    for ($i = 0; $i < $wordsCount; $i++) {
        $words[] = randomWord();
    }
    $text = implode(" ", $words);

    return $text;
}

function randomWord(): string
{  
    $vowels = ["a","e","i","o","u"];  
    $consonants = [
        "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", 
        "n", "p", "r", "s", "t", "v", "w", "x", "y", "z"
    ];  
    $string = "";
    $max = intdiv(rand(4, 8), 2);
    for ($i = 1; $i <= $max; $i++) {
        $string .= $consonants[array_rand($consonants)];
        $string .= $vowels[array_rand($vowels)];
    }

    return $string;
}

echo estimateReadingTime(randomText(200)); // 1
echo "\n";
echo estimateReadingTime(randomText(201)); // 2
echo "\n";
echo estimateReadingTime(randomText(50)); // 1
echo "\n";
echo estimateReadingTime(randomText(1895)); // 10
PHP

خروجی موردانتظار:

1
2
1
10
Plain text

آن‌چه باید آپلود کنید🔗

یک فایل PHP که تابع estimateReadingTime در آن پیاده‌سازی شده است آپلود کنید.

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.