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

جزئیات پروژه

تابعی با نام 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 در آن پیاده‌سازی شده است آپلود کنید.


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.