بکندباز

یک تابع بنویسید که یک رشته را به‌عنوان ورودی دریافت کند و کاراکترهای متوالی تکرارشده را به گروه‌هایی با ساختار زیر دسته‌بندی کند:

[[value, first_index, last_index, times_repeated], ..., [value, first_index, last_index, times_repeated]].

توضیحات پارامترها:

    • value: کاراکتر مورد بررسی.
    • first_index: اندیس اولین حضور کاراکتر.
    • last_index: اندیس آخرین حضور متوالی کاراکتر.
    • times_repeated: تعداد دفعات تکرار متوالی کاراکتر.

نمونه ورودی و خروجی

find_repeating("a") ➞ [["a", 0, 0, 1]]

find_repeating("aabbb") ➞ [["a", 0, 1, 2], ["b", 2, 4, 3]]

find_repeating("1337") ➞ [["1", 0, 0, 1], ["3", 1, 2, 2], ["7", 3, 3, 1]]

نکات:

  • اگر رشته خالی باشد، لیست خالی برگردانید: "" ➞ [].
  • مقادیر غیرتکراری باید در همان اندیس شروع و پایان داشته باشند.
  • کاراکترهای متوالی به گروه‌هایی جداگانه تقسیم می‌شوند.
self.assertEqual(find_repeating("a"), [["a", 0, 0, 1]])
self.assertEqual(find_repeating("aabbb"), [["a", 0, 1, 2], ["b", 2, 4, 3]])
self.assertEqual(find_repeating("1337"), [["1", 0, 0, 1], ["3", 1, 2, 2], ["7", 3, 3, 1]])
self.assertEqual(find_repeating("aabbbaabbb"), [["a", 0, 1, 2], ["b", 2, 4, 3], ["a", 5, 6, 2], ["b", 7, 9, 3]])
self.assertEqual(find_repeating('addressee'), [['a', 0, 0, 1], ['d', 1, 2, 2], ['r', 3, 3, 1], ['e', 4, 4, 1], ['s', 5, 6, 2], ['e', 7, 8, 2]])
self.assertEqual(find_repeating('1111222233334444'), [['1', 0, 3, 4], ['2', 4, 7, 4], ['3', 8, 11, 4], ['4', 12, 15, 4]])
self.assertEqual(find_repeating('1000000000000066600000000000001'), [['1', 0, 0, 1], ['0', 1, 13, 13], ['6', 14, 16, 3], ['0', 17, 29, 13], ['1', 30, 30, 1]])

پاسخ های کاربران به این تمرین

Amin
امتیاز:‌ 20573
تصحیح اتوماتیک 0 0
‎پایتون‎
8 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

MarsBoy
امتیاز:‌ 7091
تصحیح اتوماتیک 0 0
‎پایتون‎
7 آذر 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Arhsi8294
امتیاز:‌ 3666
تصحیح اتوماتیک 0 0
‎پایتون‎
6 آذر 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

Aboolkhafan
امتیاز:‌ 4901
تصحیح اتوماتیک 0 0
‎پایتون‎
6 آذر 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*

تمرینات مرتبط