بر اساس آمار گزارششده، میانگین سرعت مطالعهی افراد در اینترنت بین ۲۰۰ تا ۲۵۰ واژه در هر دقیقه است. احتمالاً وبلاگهایی را دیدهاید که در آنها زمان تقریبی مطالعهی هر پست زیر عنوان آن نوشته شده است. از شما میخواهیم این قابلیت را پیادهسازی کنید.
# جزئیات پروژه
تابعی با نام `estimateReadingTime` پیادهسازی کنید که یک رشته از کاربر دریافت کرده و زمان مطالعهی پست را برحسب دقیقه برگرداند. این تابع باید تعداد کلمات موجود در متن را تقسیم بر ۲۰۰ کرده و سقف آن را برگرداند. همچنین، کاراکترهای `.`، `?`، `!`، `,`، `;` و `:` باید نادیده گرفته شوند. کلمات با یک یا چند کاراکتر `' '`، `'\t'` یا `'\n'` از یکدیگر جدا شدهاند. همچنین، تفاوتی برای طول کلمات قائل نمیشویم.
امضای تابع `estimateReadingTime` بهصورت زیر خواهد بود:
```php
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
```
خروجی موردانتظار:
```
1
2
1
10
```
# آنچه باید آپلود کنید
یک فایل *PHP* که تابع `estimateReadingTime` در آن پیادهسازی شده است آپلود کنید.
# قسمت آموزشی
در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش ["سوال بپرسید"](https://quera.ir/contest/clarification/20699/) مطرح کنید.
<details class="blue">
<summary>راهنمایی ۱</summary>
یک روش برای پیادهسازی تابع `estimateReadingTime`، حذف علائم نگارشی، جداسازی متن نهایی بر اساس *whitespace* و در نهایت شمارش تعداد کلمات است:
```php
<?php
function estimateReadingTime(string $text): int
{
$text = str_replace([".", "?", "!", ",", ";", ":"], "", $text);
$text = trim($text);
if (empty($text)) {
return 0;
}
$wordsCount = count(preg_split("/\s+/", $text));
// TODO: return ceil of $wordsCount divided by 200
}
```
</details>
<details class="blue">
<summary>راهنمایی ۲</summary>
روش دیگر برای پیادهسازی تابع `estimateReadingTime`، استفاده از تابع `str_word_count` برای محاسبهی تعداد کلمات موجود در متن است:
```php
<?php
function estimateReadingTime(string $text): int
{
return ceil(str_word_count($text) / 200);
}
```
</details>
تخمین زمان مطالعه
بر اساس آمار گزارششده، میانگین سرعت مطالعهی افراد در اینترنت بین ۲۰۰ تا ۲۵۰ واژه در هر دقیقه است. احتمالاً وبلاگهایی را دیدهاید که در آنها زمان تقریبی مطالعهی هر پست زیر عنوان آن نوشته شده است. از شما میخواهیم این قابلیت را پیادهسازی کنید.
جزئیات پروژه🔗
تابعی با نام estimateReadingTime
پیادهسازی کنید که یک رشته از کاربر دریافت کرده و زمان مطالعهی پست را برحسب دقیقه برگرداند. این تابع باید تعداد کلمات موجود در متن را تقسیم بر ۲۰۰ کرده و سقف آن را برگرداند. همچنین، کاراکترهای .
، ?
، !
، ,
، ;
و :
باید نادیده گرفته شوند. کلمات با یک یا چند کاراکتر ' '
، '\t'
یا '\n'
از یکدیگر جدا شدهاند. همچنین، تفاوتی برای طول کلمات قائل نمیشویم.
امضای تابع estimateReadingTime
بهصورت زیر خواهد بود:
مثال🔗
خروجی موردانتظار:
آنچه باید آپلود کنید🔗
یک فایل PHP که تابع estimateReadingTime
در آن پیادهسازی شده است آپلود کنید.
قسمت آموزشی🔗
در این قسمت راهنماییهای سوال، به مرور اضافه میشود. مشکلاتتان در راستای حل سوال را میتوانید از بخش "سوال بپرسید" مطرح کنید.
راهنمایی ۱
یک روش برای پیادهسازی تابع estimateReadingTime
، حذف علائم نگارشی، جداسازی متن نهایی بر اساس whitespace و در نهایت شمارش تعداد کلمات است:
راهنمایی ۲
روش دیگر برای پیادهسازی تابع estimateReadingTime
، استفاده از تابع str_word_count
برای محاسبهی تعداد کلمات موجود در متن است:
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.